0

请帮助从字符串中制作,例如:

<a href="http://testsite.com" class="className">link_text_part1 <em>another_text</em> link_text_part2</a>

字符串如:

link_text_part1 another_text link_text_part2

在 Python 中使用正则表达式

!note testsite.com 更改

4

4 回答 4

1

所以你想删除<a><em>标签?可以这样做:

>>> s = '<a href="http://testsite.com" class="className">link_text_part1 <em>another_text</em> link_text_part2</a>'

>>> re.sub("</?(a|em).*?>", "", s)
'link_text_part1 another_text link_text_part2'

在英语中,这会搜索:

  • 一个 < 字符
  • 可选地后跟 / (获取结束标签)
  • 后跟“a”或“em”
  • 后跟任何内容,包括第一个 > 字符

并用空字符串替换它们。

然而,正如 Kos 所说,使用正则表达式解析 HTML 具有很高的风险和脆弱性,除非您知道您正在解析的 HTML 的格式永远不会改变。

于 2010-07-23T10:37:25.917 回答
1
string = re.sub('<[^>]+>', '', string)
于 2010-07-23T10:43:45.740 回答
1

通常强烈不推荐使用正则表达式解析 HTML,即使对于简单的情况也是如此。您永远不会知道什么时候遇到了一些会混淆您的正则表达式的 HTML 代码。

轻量级 HTML 解析器通常是更可靠和更优雅的解决方案。

于 2010-07-23T10:43:53.510 回答
0

顺便提一句。这有助于:

from scrapy.utils.markup import remove_tags  
...
bbb=remove_tags(aaa)
于 2010-07-25T14:35:08.497 回答