带regex的Python脚本返回空lis

2024-06-02 04:33:23 发布

您现在位置:Python中文网/ 问答频道 /正文

这是关于multiline regex pattern for text patterns问题的后续内容,但我需要它作为python脚本的一部分工作

这个正则表达式模式:

<p><strong>PRESIDENTE ANDRÉS MANUEL LÓPEZ OBRADOR:<\/strong>\r?\n((?:(?!<p><strong>)^[^\r\n]+\r?\n)+)

按Obrador查找数百页中的所有文本,如本例所示:

<p><strong>ROGELIO JIMÉNEZ PONS:</strong> Quisiera</p>
<p>Text here...</p>
<p><strong>PRESIDENTE ANDRÉS MANUEL LÓPEZ OBRADOR:</strong>Some words here.</p>
<p>Text here...</p>
<p>Text here...</p>
<p><strong>PREGUNTA:</strong>Some question here.</p>
<p>Text here...</p>
<p><strong>PRESIDENTE ANDRÉS MANUEL LÓPEZ OBRADOR:</strong>Some words here.</p>
<p>Text here...</p>
<p>Text here...</p>
<p>Text here...</p>
<p><strong>INTERLOCUTOR:</strong>

你可以看到test here

但当我将其放入以下python脚本时,它返回一个空列表:

regex_match = re.compile(r'<p><strong>PRESIDENTE ANDRÉS MANUEL LÓPEZ OBRADOR:<\/strong>\r?\n((?:(?!<p><strong>)^[^\r\n]+\r?\n)+)', re.MULTILINE)
text_obrador = regex_match.findall(str(all_text))
print(text_obrador)

为了测试它,我尝试了以下操作,它只返回了第一个p标记内容:

regex_match = re.compile(r'<p><strong>PRESIDENTE ANDRÉS MANUEL LÓPEZ OBRADOR:<\/strong>\r?.+', re.MULTILINE)

Tags: textre脚本内容herematchsomeregex
1条回答
网友
1楼 · 发布于 2024-06-02 04:33:23

修复了@TimBiegeleisen指出的缺少的结束p标记,并将其添加到regex中。现在当我跑步时:

regex_match = re.compile(r'<p><strong>PRESIDENTE ANDRÉS MANUEL LÓPEZ OBRADOR:<\/strong>.+\r?\n((?:(?!<p><strong>)^[^\r\n]+\r?\n)+)', re.MULTILINE)
text_obrador = regex_match.findall(str(all_text))
print(text_obrador)

在实际文本中,它是有效的

相关问题 更多 >