2017-10-15 18 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組。