regex表达式适用于Python 2.7.12,但不适用于Python 2.7.8

时间:2016-11-30 20:05:38

标签: regex python-2.7

我写了一个简单的脚本来扫描目录中的文件类型(.htm),打开它们。并替换一些文字。这个脚本在我的家用计算机上工作正常(Python 2.7.12),但在我的工作计算机上却没有(Python 2.7.8),我无法弄清楚原因。它根本找不到任何匹配。它正在查看的文件是相同的格式,编码等。

表达式是:

core = re.compile(r'(.*?)(FeatureCatalogue_Core_v??4\.\d_20[123]\d-??[01]\d-??[0123]\d)(.*?)')

“FeatureCatalogue_Core_v4.4_2016-12-31”应匹配

“FeatureCatalogue_Core_4.4_20161231”应匹配

“FeatureCatalogue_Core_v5.0_2017-12-31”不应与

匹配

我确信我错过了一些简单的东西,或者我的表情不太正确,但我看不出来。

1 个答案:

答案 0 :(得分:0)

我解决了这个问题。它实际上是找到匹配。我的“休息”状态无效。我通过使用计数器想出了一个解决方案,所以在经过如此多的成功尝试后,它会破裂。

for x,y,z in os.walk(pathTRD):
    for doc in z:
        Path = os.path.join(x,doc)
        if Path.endswith('.htm'):
            dataR = open(Path, 'r')
            filedata = dataR.read()
            dataR.close()
            for line in filedata.split(None):
                for q in Qs:
                    mtch = re.match(q, line)
                    try:
                        Keys1.append(str(mtch.group(2)))
                        winLoop += 1
                    except:
                        pass
        if winLoop > 6:#<--- this isn't how wanted to do this, but the work computers are being dumb
                    break
        seekLoop += 1