[英]Python regex - stripping out HTML tags and formatting characters from inner HTML
我正在处理这样的单个HTML字符串
>> s = 'u><br/>\n Some text <br/><br/><u'
我在有意义的文本中嵌入了损坏的HTML或不完整的HTML标签。 我只需要提取该内部文本,而忽略损坏的HTML。 我怎样才能做到这一点? 我正在使用
>> re.search(r'(.>)(<.>)(.>)', s)
>>
但这返回null。
如果我理解正确,那么您正在寻求以下输入:
u><br/>\n Some text <br/><br/><u
并接收以下输出:
\n Some text
仅需关心两个向内指向括号之间的内容即可轻松完成此操作。 我们想要:
>
(所以我们知道从哪里开始) \\n Some text
(内容)不包含左括号 <
(所以我们知道在哪里结束) 你要:
>>> s = 'u><br/>\n Some text <br/><br/><u'
>>> re.search(r'>([^<]+)<', s)
<_sre.SRE_Match object; span=(6, 55), match='>\n Some text >
(可以通过.group(1)
访问捕获的组。)
此外,如果您希望每行有多个匹配re.findall
则可能要使用re.findall
:
>>> re.findall(r'>([^<]+)<', s)
['\n Some text ']
编辑:解决评论:如果您有多个匹配项,并且想要将它们连接到单个字符串中(有效地删除所有类似HTML的标记内容),请执行以下操作:
>>> s = 'nbsp;<br><br>Some text.<br>Some \n more text.<br'
>>> ' '.join(re.findall(r'>([^<]+)<', s))
'Some text. Some \n more text.'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.