Maison > Questions et réponses > le corps du texte
J'étais en train de réviser le module re récemment et j'ai soudainement pensé à cette question : si la seconde moitié de la chaîne correspondante se trouve être la première moitié de la chaîne correspondante suivante, comment y parvenir ? Par exemple, il y a une chaîne aAFDdADDdDFDsDFS
, et je veux faire correspondre les lettres minuscules d, d et s entourées de trois lettres majuscules. Mon code est comme ceci :
import re
rawstring = '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())
Les résultats obtenus sont les suivants :
aAFDdADDd
DFDsDFS
Le deuxième d est manquant. Que dois-je faire si je veux également faire correspondre le deuxième d ? Merci!
给我你的怀抱2017-06-12 09:29:43
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']