簡體   English   中英

需要有關Python中的正則表達式的幫助

[英]Need help with the regular expressions in Python

請從以下字符串中進行幫助:

<a href="http://testsite.com" class="className">link_text_part1 <em>another_text</em> link_text_part2</a>

像這樣的字符串:

link_text_part1 another_text link_text_part2

在Python中使用正則表達式

!note testsite.com更改

因此,您要刪除<a><em>標記嗎? 可以這樣完成:

>>> s = '<a href="http://testsite.com" class="className">link_text_part1 <em>another_text</em> link_text_part2</a>'

>>> re.sub("</?(a|em).*?>", "", s)
'link_text_part1 another_text link_text_part2'

用英語搜索:

  • 一個<字符
  • (可選)后跟一個/(以獲取結束標記)
  • 后跟“ a”或“ em”
  • 后跟直到第一個>字符的所有字符

並將其替換為空字符串。

但是,正如Kos所說,使用正則表達式解析HTML的風險很大且脆弱,除非您知道所解析的HTML格式永遠不會改變。

string = re.sub('<[^>]+>', '', string)

強烈建議不要使用正則表達式解析HTML,即使是在簡單情況下也是如此。 您永遠不會知道何時打入一些會混淆正則表達式的HTML代碼。

簡單的HTML解析器通常是更可靠,更優雅的解決方案。

順便說一句。 這有助於:

from scrapy.utils.markup import remove_tags  
...
bbb=remove_tags(aaa)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM