python - Dans les expressions régulières, si la seconde moitié de la chaîne correspondante est la première moitié de la chaîne correspondante suivante, comment l'implémenter?
给我你的怀抱
给我你的怀抱 2017-06-12 09:27:43
0
1
956

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!

给我你的怀抱
给我你的怀抱

répondre à tous(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']
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal