如何匹配下面的代码以获得两个字符串:
- 第三个结束标签的标题
- 第 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/