【发布时间】:2023-03-10 00:05:01
【问题描述】:
我正在尝试使用正则表达式 (RE) 解析大量文本文件样本。我试图从这些文件中提取包含 'vu' 并以换行符 '\n' 结尾的部分文本。
模式因文件而异,因此我尝试使用 OR 运算符在我的文件中查找 RE 的组合。但是,我没有找到一种方法来自动化我的代码,以便 re.findall() 函数查找 RE 的组合。
这是我尝试解决此问题的示例,但显然我仍然无法同时评估我的正则表达式和 re.findall() 中的 OR 运算符:
import re
def series2string(myserie) :
myserie2 = ' or '.join(serie for serie in myserie)
return myserie2
def expression(pattern, mystring) :
x = re.findall(pattern, mystring)
if len(x)>0:
return 1
else:
return 0
#text example
text = "\n\n (troisième chambre)\n i - vu la requête, enregistrée le 28 février 1997 sous le n° 97nc00465, présentée pour m. z... farinez, demeurant ... à dommartin-aux-bois (vosges), par me y..., avocat ;\n"
#expressions to look out
pattern1 = '^\s*vu.*\n'
pattern2 = '^\s*\(\w*\s*\w*\)\s*.*?vu.*\n'
pattern = [pattern1, pattern2]
pattern = series2string(pattern)
expression(pattern, text)
注意:我通过在 for 循环 中查找每个模式来规避这个问题,但是如果我可以使用 re.findall( ) 一次。
【问题讨论】:
标签: python regex or-operator