Ich habe kürzlich das Re-Modul überprüft und plötzlich über diese Frage nachgedacht: Wenn die zweite Hälfte der übereinstimmenden Zeichenfolge zufällig die erste Hälfte der nächsten übereinstimmenden Zeichenfolge ist, wie kann dies erreicht werden? Zum Beispiel gibt es eine Zeichenfolge aAFDdADDdDFDsDFS
, und ich möchte die Kleinbuchstaben d, d und s, umgeben von drei Großbuchstaben, zuordnen. Mein Code sieht so aus:
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())
Die erzielten Ergebnisse sind wie folgt:
aAFDdADDd
DFDsDFS
Das zweite d fehlt. Was soll ich tun, wenn ich auch das zweite d abgleichen möchte? Danke!
r'(?<=[A-Z]{3})([a-z])(?=[A-Z]{3})'