需要有关Python中正则表达式的帮助

时间:2010-07-23 10:31:05

标签: python scrapy

请帮助从字符串中创建:

<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中使用正则表达式

!注意 testsite.com更改

4 个答案:

答案 0 :(得分: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&lt;字符
  • 可选地后跟/(以获得结束标记)
  • 后跟'a'或'em'
  • 后跟任何内容,包括第一个&gt;字符

并用空字符串替换它们。

然而正如Kos所说,使用正则表达式解析HTML是非常危险和脆弱的,除非你知道你正在解析的HTML的格式永远不会改变。

答案 1 :(得分:1)

string = re.sub('<[^>]+>', '', string)

答案 2 :(得分:1)

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

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

答案 3 :(得分:0)