首先,您正试图以艰难的方式做到这一点。我怀疑这可能不是不可能的,但你必须应用一些人工智能技术,这将比它的价值复杂得多。可以训练神经网络或遗传算法系统来识别 Z 数和 T 数,假设 和 的格式Z[0-9]+
总是T[0-9]+
在正则表达式的某处使用。
我要解决这个问题是编写一个 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]+[ -/.=]