从文件获取正则表达式并将其应用于不同的python文件

时间:2015-08-10 13:38:16

标签: regex python-2.7

我有很多正则表达式可以处理特定的大数据,现在它正在运行,但正则表达式的数量正在逐渐增加。

所以我原本计划将正则表达式从主python中移动到文本或cnf文件中,但是当从另一个文件获取正则表达式并将其应用于数据时,并没有给出正确的输出,当两者都在同一时文件。

请指点一下。

1 个答案:

答案 0 :(得分:1)

似乎对我有用:

open('regex.txt', 'w').write(r'(\d+)\s*(\w+)')
open('text.txt', 'w').write('foo 21   bar')


import re
regex = open('regex.txt').read()
text = open('text.txt').read()
print(re.findall(regex, text)) # [('21', 'bar')]

确保你是:

  • 忽略正则表达式文件上的尾部空格(如行结尾,否则引擎也会尝试匹配)。您可以使用re.findall(regex, text.strip())
  • 正确转义值(注意我使用r''而不是'',因此反斜杠会被正确写入)。您是否直观地检查了文件以确保它没有重复的反斜杠,例如?
  • 阅读正确的文件(我们总是犯下的愚蠢错误)。