我有一个正则表达式模式的列表文件和一个包含换行符'\n'的字符串,即一个包含分隔行的字符串...我需要一个通用的正则表达式,它可以匹配正则表达式文件中的整行,并使得我可以做如下操作:
re.compile(r'generic_regex%s') %来自文件的regex_pattern,它会自动匹配整行,就像grep一样。
有什么想法吗?
Something like:
>>> 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)
应该只针对顺序访问进行优化... 如果需要,重新编写正则表达式以跨越多行...