[英]Combine in an efficient way regex python
我动态创建一个正则表达式列表,即regex_list
。 列表中的每个正则表达式都肯定至少与应用的文本匹配。 列表中的某些正则表达式可能是相等的。
regex_list = []
for f in foo: # foo is a list of strings e.g. foo = ['foo1', 'foo2', 'foo1', ...]
# f is a valid expression to be used inside the regex
regex_list.append(f'[^.]*?{f}[^.]*\.')
regex = re.compile('|'.join(regex_list), flags=re.DOTALL)
result = re.findall(regex, text)
自从
regex_list
中的某些正则表达式可能等于regex_list
中的正则表达式与 OR 运算符组合在一起对于列表中存在另一个副本的正则表达式,仅捕获文本中的第一个匹配项。
一种解决方法可能是使用 for 循环单独应用每个正则表达式,但它非常慢。
有没有一种结合正则表达式并使它们尽可能匹配的好方法?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.