python - 正则表达式:匹配两个项目之间的文本

标签 python html regex parsing

如何匹配下面的代码以获得两个字符串:

  1. 第三个结束标签的标题
  2. 第 2 个标题到第 6 个关闭标签。(依此类推...第 3 个标题到第 9 个关闭标签...等等)

这里是要匹配的字符串:

title
<a></a>
content here
<a></a>
text...
<a></a>
text...
title 
<a></a>
<a></a>
<a></a>

我尝试使用 .* 但这捕获了从标题到最后一个标签的文本。

最佳答案

from re import findall, DOTALL

text = '''
title
<a></a>
content here
<a></a>
text...
<a></a>
text...
title 
<a></a>
<a></a>
<a></a>
'''
print findall(r'title.*?</a>.*?</a>.*?</a>', text, DOTALL)

给出

['title\n<a></a>\ncontent here\n<a></a>\ntext...\n<a></a>', 'title \n<a></a>\n<a></a>\n<a></a>']

你也可以使用

print findall(r'title(?:.*?</a>){3}', text, DOTALL)

关于python - 正则表达式:匹配两个项目之间的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18039775/

相关文章:

python - 在列表列表中查找元素

html - 子元素 100% 大小的父内容

java - 需要使用正则表达式从字符串中的十进制数中删除尾随 0

mysql - mysql 查询的正则表达式匹配 html 实体

python - 如何使用列表推导模拟 sum()?

python - 带参数的 Windows 子进程

python - Flask 和 SQLAlchemy 使用哪个 Forms 库

javascript - 如何让复选框删除表单中的 'required' 验证

javascript - 手动输入url时location.hash问题,脚本不运行

javascript - 正则表达式字符串显示错误