我目前正在努力使用正則運算式。我試圖替換每個以“.com”結尾的網站,除了一個,即“crypto.com”,因為它本身不是一個網站,而是一種加密貨幣的名稱。
我們來看這句話:
“這是我最喜歡的東西:crypto.com、polo.com、cryp.com 和 google.com”
受此答案的啟發,這是我的 Python 正則運算式:
r"(\w \.)?crypto\.com"
問題是,使用https://regex101.com來測驗它,它只捕獲 crpyto.com,而不是其他(這是我想要做的)。
誰能告訴我如何進行?謝謝!
預期代碼:
text = "Here are my favorite things: crypto.com, polo.com, cryp.com and google.com"
text = re.sub(r"(\w \.)?crypto\.com", '', text )
預期輸出:
“這是我最喜歡的東西:crypto.com,和”
uj5u.com熱心網友回復:
您可以使用
\s*\b(?!crypto\.)\w \.com\b
請參閱正則運算式演示。詳情:
\s*- 零個或多個空格\b- 一個詞的邊界(?!crypto\.)- 如果crypto.當前位置右側有字串則匹配失敗的負前瞻\w- 一個或多個字字符\.com——.com\b- 一個詞的邊界。
請參閱Python 演示:
import re
text = "Here are my favorite things: crypto.com, polo.com, cryp.com and google.com"
print( re.sub(r'\s*\b(?!crypto\.)\w \.com\b', '', text) )
# => Here are my favorite things: crypto.com,, and
還可以使用更全面的正則運算式來洗掉逗號和單詞and:
(?:\s*(?:,|and\s*)?)\b(?!crypto\.)\w \.com,?
請參閱此正則運算式演示。
uj5u.com熱心網友回復:
使用負面環視:
(\w )?(?<!crypto)\.com
編輯:問題略有改變,我洗掉了一個\.不正確的問題,現在它應該可以作業了!
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/371597.html
下一篇:查找不是數字??或預定義字串的值
