我試圖匹配除特定模式之外的電話號碼中的所有內容。
在數字“07440359359”中,有沒有辦法匹配“359”以外的所有內容?
我的主要目標是能夠替換不在模式中的數字中的最后一位數字。
例如:
與07440359359所希望的輸出是0744*359359
到目前為止,我已經提出了這種模式,^(?!.*(359))但它與模式以外的所有內容都不匹配。
任何想法將不勝感激!:)
uj5u.com熱心網友回復:
我想你會想要:
\d((?:359)*)$
查看在線演示
\d- 一位數;((?:359)*)- 匹配“359”(貪婪)的第一個捕獲組;$- 結束字串錨。
用。。。來代替 *\1
import re
s = "07440359359"
print(re.sub(r'\d((?:359)*)$', r'*\1', s))
印刷:
0744*359359
uj5u.com熱心網友回復:
為什么不使用帶有捕獲組和后視的正則運算式?
s = "07440359359"
import re
out = re.sub(r'(\d ?)((?:359) )', r'\1*\2', s)
輸出: '07440*359359'
如果要確保359是最后一位數字:
s = "074403593594"
import re
re.sub(r'(\d ?)((?:359) )(?!\d)', r'\1*\2', s)
輸出: 074403593594
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/398900.html
