在python中使用regex剥离标记

2024-05-01 18:17:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我怎样才能把标签从名单上去掉:

['</span>A walk in the park<span class="html-tag"]

我设法用(r'(?<=</span>)[^>]+')删除了第一个标记,但不知道如何删除第二个标记。我知道正则表达式不是处理标记的方法,但我只是想弄清楚这一点


Tags: the方法in标记parkhtmltag标签
2条回答

你和你的正则表达式很接近。在lookback找到位置之后,您只需要读到下一个<

(?<=</span>)[^<]+

regex101上查看

$ cat test.py
import re
s='</span>A walk in the park<span class="html-tag"'
print re.findall(r'(?<=</span>)[^<]+', s)

$ python test.py
['A walk in the park']

您可以使用:

(?:>)(.*)(?:<)

在正则表达式中,每个打开和关闭的圆制动器定义一个组。在这里,我们有3对圆括号,但是第一个和最后一个括号内有?:。这意味着被定义的组是一个非捕获组,因此需要匹配模式,但解析器不会返回它。相反,你想要的是第一组

相关问题 更多 >