我有一个包含正则表达式模式列表和包含'\ n's'的字符串的文件,即一个带有单独行的字符串......我需要一个通用正则表达式,它可以将整行与正则表达式文件中的模式匹配,这样我就可以做类似的事情
re.compile(r'generic_regex%s') %regex_pattern from file 它会自动匹配整行,就像 grep 一样。
有任何想法吗??
就像是:
>>> re.findall(r"(^.*?%s.*?$)" %expression, text, re.MULTILINE)
?
调整任何边界等...
import re
import mmap
def find_re(fname, rx): # rx is a compiled re object
with open(fname) as fin:
mm = mmap.mmap(fin.fileno(), 0, access=mmap.ACCESS_READ)
return rx.findall(mm)
对于顺序访问应该很快...如果需要遍历多行,请重新处理正则表达式...