我有類似下面的字符串,其中包含中國:如何用python替換字符串中的html元素?
'<span class=H>宜家</span><span class=H>同款</span> 世紀寶貝兒童餐椅嬰兒餐椅寶寶餐椅嬰兒吃飯椅'
現在我想刪除該字符串的所有HTML元素如預期:
'宜家同款世紀寶貝兒童餐椅嬰兒餐椅寶寶餐椅嬰兒吃飯椅'
我想知道如何做到這一點蟒蛇和重新?非常感謝!
我有類似下面的字符串,其中包含中國:如何用python替換字符串中的html元素?
'<span class=H>宜家</span><span class=H>同款</span> 世紀寶貝兒童餐椅嬰兒餐椅寶寶餐椅嬰兒吃飯椅'
現在我想刪除該字符串的所有HTML元素如預期:
'宜家同款世紀寶貝兒童餐椅嬰兒餐椅寶寶餐椅嬰兒吃飯椅'
我想知道如何做到這一點蟒蛇和重新?非常感謝!
這是一些小事與BeautifulSoup
HTML解析器來解決:
>>> from bs4 import BeautifulSoup
>>>
>>> data = '<span class=H>宜家</span><span class=H>同款</span> 世紀寶貝兒童餐椅嬰兒餐椅寶寶餐椅嬰兒吃飯椅'
>>> soup = BeautifulSoup(data)
>>> soup.text
'宜家同款 世紀寶貝兒童餐椅嬰兒餐椅寶寶餐椅嬰兒吃飯椅'
對於僅使用正則表達式一個簡單的解決方案,你可以搜索以下模式,並用空字符串替換所有出現:
\s*<[^>]+>\s*
例如:
p = re.compile('\s*<[^>]+>\s*')
p.sub('', '<span class=H>宜家</span><span class=H>同款</span> 世紀寶貝兒童餐椅嬰兒餐椅寶寶餐椅嬰兒吃飯椅')
不負呃:這決不會處理合法HTML的每一種可能的變化,但只要所有的輸入數據都像你的例子中的數據一樣簡單,它就可以工作。必要時可以對模式進行更改,以處理稍微複雜的輸入。然而,如果你的意圖是處理任何格式良好的HTML文檔作爲輸入,那麼你應該考慮一個實際的HTML解析器,而不是使用正則表達式。
通過像這樣包含''s''' \\ s * <[^>] +> \ s */g''將會消除結果中的所有空格。 –
@PedroPinheiro普德點。我沒有注意到OP中的所需輸出確實已經移除了空格。我會相應地更新我的答案。但是,Python中不需要bookend-slashes。此外,'re.sub'默認使用* global *選項,所以'g'也是不必要的。 –
它看起來很好的解決方案。我只是想使用正則表達式,我沒有得到正確的解決方案。非常感謝,我會試試這個。 –