首先,你試圖做到這一點很難。我懷疑這可能不是不可能的,但你將不得不應用一些人工智能技術,這將比它的價值複雜得多。假設Z[0-9]+
和T[0-9]+
的格式總是在正則表達式的某個地方使用,神經網絡或遺傳算法系統可以被訓練識別Z數和T數。
我會用這個問題做的是編寫一個Python腳本來處理所有的文件名。在這個腳本中,我會匹配兩次文件名,一次尋找Z[0-9]+
,一次尋找T[0-9]+
。每次我都會計算Z值和T值的匹配。
我會保持其他四個計數器的運行總數,兩個Z值和兩個T值。每一對將代表1個匹配的文件名的計數,以及多個匹配的文件名。我會統計處理的文件名的總數。
最後,如下我將報告:
nnnnnnnnnn filenames processed
Z-numbers matched only once in nnnnnnnnnn filenames.
Z-numbers matched multiple times in nnnnnn filenames.
T-numbers matched only once in nnnnnnnnnn filenames.
T-numbers matched multiple times in nnnnnn filenames.
如果你是幸運的,不會有多個匹配的一切,你可以使用上面的正則表達式來提取你的號碼。但是,如果有多個匹配的數目很大,則可以使用一些打印語句再次運行該腳本,以顯示引發多重匹配的示例文件名。這會告訴你是否可以對正則表達式進行簡單的調整。例如,如果您有多個T編號匹配的23,768個匹配項,則使腳本每隔500個文件名打印多個匹配項,這會給您47個要檢查的樣本。
也許像[ -/.=]T[0-9]+[ -/.=]
這樣的東西就足以讓多個匹配降到零,同時也給每個文件名一次匹配。或者在最壞的情況下,[0-9][ -/.=]T[0-9]+[ -/.=]
真的很有趣的問題。每當我必須做regexing,我想這個,但從來不敢問,或人們可能會認爲我瘋了!因爲我認爲這不會是遠程可能的,直到我看到你發佈的鏈接:) – 2009-11-03 13:58:53
據我所知,這是_exactly_什麼RegexMagic是:http://www.regexmagic.com/ – Huppie 2009-11-03 14:15:09