使用Python正则表达式匹配整行与特定模式的正则表达式

3

我有一个正则表达式模式的列表文件和一个包含换行符'\n'的字符串,即一个包含分隔行的字符串...我需要一个通用的正则表达式,它可以匹配正则表达式文件中的整行,并使得我可以做如下操作:

re.compile(r'generic_regex%s') %来自文件的regex_pattern,它会自动匹配整行,就像grep一样。

有什么想法吗?


你的意思是想匹配包含换行符(\n)的整个字符串,还是只想匹配换行符之间的文本?也就是说,在多行模式下搜索,还是在输入字符串中逐个搜索每一行? - alan
2个回答

8

Something like:

>>> re.findall(r"(^.*?%s.*?$)" %expression, text, re.MULTILINE)

?


0

根据任何边界进行调整等...

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)

应该只针对顺序访问进行优化... 如果需要,重新编写正则表达式以跨越多行...


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接