2017-10-15 20 views
-1

使用正则表达式剥离标签我怎么能去剥离标签关闭此列表:在python

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

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

+4

出于好奇 - 你是如何获得该字符串中的第地点...?几乎看起来像你可能希望在一些处理中提取不同的文本,而不是整理那些... –

+0

@JonClements我刚刚创建了上述内容来反映一些我在处理更复杂的任务时遇到的问题,这些问题本来很难解释。 – West

+0

当然 - 看来你正试图清理可能避免的事情...... –

回答

0

你和你的正则表达式非常接近。通过回顾后发现位置之后,你只是想读取直到下一个<

(?<=</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'] 
+0

真棒工作!谢谢 – West

0

您可以使用:

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

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