[英]How to remove a href tags from a string?
我有一些以前從網站上抓取的用戶評論,我正在嘗試清理文本以進行一些文本分析。 我想刪除文本中有幾個 a href 標記。 例如,查看段落中包含的部分文本:
'We had a <a href="/redir?url=http%3A%2F%2Frestaurants.com&amp;s=8b83bf0ff8b716aae84527dc95577a310f201b166dcca25c8ca3824b15703869" target="_blank" rel="nofollow">restaurants.com</a> $25 gift certificate, so we visited this restaurant.'
我想從字符串中刪除這部分:
<a href="/redir?url=http%3A%2F%2Frestaurants.com&amp;s=8b83bf0ff8b716aae84527dc95577a310f201b166dcca25c8ca3824b15703869" target="_blank" rel="nofollow">restaurants.com</a>
我不是正則表達式的專家,所以到目前為止我能做的最好的是:
import re
re.sub(r'<a href\S+', '', mytext)
但這僅刪除了我想要擺脫的部分內容,如下所示:
print(mytext)
'We had a target="_blank" rel="nofollow">restaurants.com</a> $25 gift certificate, so we visited this restaurant.'
我搜索了很多解決方案,但只能找到javascript和幾篇警告不要使用正則表達式解析 html 的帖子,我想這不適用於我的情況,因為我正在處理字符串。 我想如果我閱讀更多關於使用正則表達式的信息,我可以完成這項工作,但我正在尋找一個快速的解決方案。 非常感謝任何幫助。
當您正在尋找快速解決方案時。 僅 go 用於基本和使用字符串操作。
input_string = 'We had a <a href="/redir?url=http%3A%2F%2Frestaurants.com&amp;s=8b83bf0ff8b716aae84527dc95577a310f201b166dcca25c8ca3824b15703869" target="_blank" rel="nofollow">restaurants.com</a> $25 gift certificate, so we visited this restaurant.'
input_string = input_string.split('<a href')
first_part = input_string[0]
input_string = input_string[-1].split('</a>')
sencond_part = input_string[-1]
new_string = first_part + sencond_part
print(new_string) # We had a $25 gift certificate, so we visited this restaurant.
import re
''.join(re.findall('(<a href)(.+?)(/a>)', st)[0])
這適用於您的示例,如果您有多個可以使用的 href 鏈接:
[''.join(entry) for entry in re.findall('(<a href)(.+?)(/a>)', st)]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.