需要帮助解决Python中的正则表达式问题
请帮忙把这样的字符串:
<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 个回答
1
用正则表达式解析HTML,即使是简单的情况,通常是不太推荐的。你永远不知道什么时候会遇到一些HTML代码,让你的正则表达式搞不清楚状况。
使用一个轻量级的HTML解析器通常是更可靠、更优雅的解决方案。
1
当然可以!请看下面的内容:
在编程中,有时候我们需要让程序在特定的条件下执行某些操作。这就像是给程序设定了一些规则,只有当这些规则满足时,程序才会继续进行。比如说,如果你在玩游戏,只有当你收集到足够的金币,才能解锁下一个关卡。
在代码中,我们通常会使用“条件语句”来实现这个功能。条件语句就像是一个检查点,程序会在这里停下来,看看是否满足条件。如果满足,程序就会执行接下来的代码;如果不满足,程序可能会跳过这些代码,或者执行其他的操作。
这样做的好处是可以让程序更加灵活,能够根据不同的情况做出不同的反应。就像在生活中,我们会根据天气的变化来决定穿什么衣服一样。
希望这个解释能帮助你更好地理解条件语句的概念!
string = re.sub('<[^>]+>', '', string)
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格式永远不会改变。