使用正则表达式从HTML标记中提取连续文本

时间:2018-11-15 04:17:42

标签: python regex regex-lookarounds

我正在尝试使用正则表达式从html标记中提取文本。我可以从单个标签中提取文本,但是如果标签一个接一个地存在,我想提取连续文本。

示例(非连续文本):

sample_text = "<b><em>Excellent</em></b> work done by <b><em>Sam</em></b>"
re.findall("(?<=<b>)(.*?)(?=</b>)",sample_text)
>> [<em>Excellent</em>, <em>Sam</em>]

示例(连续文本)

sample_text = "<b><em>Excellent</em></b> work done by <b><em>Sam</em></b><b><em>Miller</em></b>"
re.findall("(?<=<b>)(.*?)(?=</b>)",sample_text)

这就是我得到的:

>> [<em>Excellent</em>, <em>Sam</em> ,<em>Miller</em>]

这是我的预期输出:

>> [<em>Excellent</em>, <em>Sam Miller</em>]

谢谢。

0 个答案:

没有答案