文章詳情頁
python - 正則表達式中,如果匹配到的字符串后一半剛好是下一個匹配字符串的前一半,怎么實現?
瀏覽:88日期:2022-06-28 17:18:48
問題描述
最近在復習re模塊,突然想到這個問題,就是如果匹配到的字符串后一半剛好是下一個匹配字符串的前一半,怎么實現?比如說,現在有個字符串是aAFDdADDdDFDsDFS,想匹配周邊是三個大寫字母的小寫字母d,d和s,我的代碼是這樣的:
import rerawstring = ’aAFDdADDdDFDsDFS’reg = r’[^A-Z]*[A-Z]{3}([a-z]+)[A-Z]{3}[^A-Z]*’pattern = re.compile(reg)r = pattern.finditer(rawstring)for s in r: print(s.group())
得到的結果如下:
aAFDdADDdDFDsDFS
漏了第二個d,如果想把第二個d也匹配到,應該怎么做?謝謝!
問題解答
回答1:r’(?<=[A-Z]{3})([a-z])(?=[A-Z]{3})’
>>> import re>>> rawstring = ’aAFDdADDdDFDsDFS’>>> reg = r’(?<=[A-Z]{3})([a-z])(?=[A-Z]{3})’>>> pattern = re.compile(reg)>>> pattern.findall(rawstring)[’d’, ’d’, ’s’]
排行榜
