您的位置:首頁技術文章
文章詳情頁

python - 正則表達式中,如果匹配到的字符串后一半剛好是下一個匹配字符串的前一半,怎么實現?

瀏覽:127日期: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’]

標簽: Python 編程
国产综合久久一区二区三区