[问题] 有办法模糊比对取得档案INDEX吗?

楼主: don750421 (1+1≠2)   2015-12-17 23:43:45
假设有数个档案,要如何透过模糊比对取得档案INDEX?
当然,一定会有以下保证规则:
1. 档名长度一定相同
2. 档案INDEX一定为两码数字
3. 档案INDEX的位置一定相同
4. 档案INDEX一定介于01~10
范例一:假设资料夹内有以下档案
ABCAB01.txt ==> 01
ABCAC02.txt ==> 02
ABCAD05.txt ==> 05
范例二:假设资料夹内有以下档案
ABCA401DF.txt ==> 01
ABCA802FV.txt ==> 02
ABCA905EF.txt ==> 05
范例三:假设资料夹内有以下档案
ABCA401DF.txt ==> 01 这种就算是FAIL,
ABCA8G2FV.txt ==> ?? 因为只要其中一个无法取出。
ABCA905EF.txt ==> 05 则其他取出的就无参考意义
范例四:假设资料夹内有以下档案
ABCA401DF.txt ==> 01 这种就算是FAIL,
ABCA824FV.txt ==> 24 因为上面一定有保证,档案Index介于01~10,
ABCA905EF.txt ==> 05 则其他取出的就无参考意义
有想过或许正规表示法有办法取得,但是要如何抓取到第N个字符的位置...
好像又是另一个问题@@...
作者: leicheong (睡魔)   2015-12-18 00:10:00
把字串中的数字换成N其他转成T, "."看你要不要换,然后直接比较不行吗?另外401DF那个看不懂为什么会fail.要保证是01到10的话在检查IsDigit时偷看下一个数字即可感觉当成2维的char array比较易处理.
作者: autumn10109   2015-12-18 09:24:00
905 ok但401 fail是还有其他规则吗?
作者: Ammenze (蓝天白云)   2015-12-18 13:24:00
第三段应该是说3个档案有一个抓不出正确规则的数字就整个3档案都算fail吧
作者: Litfal (Litfal)   2015-12-18 23:24:00
这没很难啊?跑两层循环不就好了?
楼主: don750421 (1+1≠2)   2015-12-19 10:23:00
两层循环?每个资料内的档案index也有可能出现在第1、2码
作者: autumn10109   2015-12-19 11:41:00
所以是index位置根本不固定?但每次所有档名的index必须在同个位置才ok
作者: Litfal (Litfal)   2015-12-19 13:55:00
第一层当然是跑所有档案档名,第二层看你是要用字串解析还是REGEX,分析出档名内有几个部位符合\d{2},例如ABC102就解析成list of <index,value> = {{3,10},{4,2}}再取所有FILE的某index都有值的,就是结果。当然可以在过程中优化减少运算量PS.我的index是指数字在档名中的位置,跟你的INDEX不同

Links booklink

Contact Us: admin [ a t ] ucptt.com