2016-11-09 99 views
0

我有這樣的HTMLPython的應用re.sub工作不正常

b>Source: </b> <a href=\'http: //website.com/ml/datasets/Iris\'>text here</a><br><p class="normal">Creator: R.A. Fisher 
<br><br>Donor: Namehere <b>\'@\'</b> website.com</u>)</p> 

我想使用正則表達式

我用這_str = re.sub('<br>\s*','<br>',_str)

從這個刪除多個<br>但它返回字符串它完全沒有改變。

如果我使用相同的正則表達式,但然後它指定一個不同的替換字符,這_str = re.sub('<br>\s*','',_str)

+2

你的正則表達式的意思是「代替'
'標籤可選,後跟空白,並帶有'
'「。它不包含任何「多重'
'」的概念。實際上,您的正則表達式會替換'
'和'
'的所有實例,所以您顯然沒有看到區別。 –

+0

對不起,我沒有得到你@VincentSavard ...我想用
替換多個
... – Umair

+0

我明白你想要什麼。我告訴你的是,這不是你寫的。你需要首先修正你的正則表達式。 –

回答

1

你只有剝去以下<br>與空間。您可以改用正向前查找刪除所有<br> S作另一個<br>緊隨其後:

re.sub(r'<br>(?=<br>)', '', _str) 

您可以處理間<br>空間有:

re.sub(r'<br>(?=\s*<br>)', '', _str) 
+0

接受,正則表達式工作的一點點的解釋將是巨大的概念...感謝反正 – Umair

+0

這裏:[*正預測先行斷言*](HTTP:/ /www.rexegg.com/regex-lookarounds.html) –