ich möchte einen Substring, wenn zweimal hintereinander vorkommt verändern, in meinem vereinfachten Beispiel soll aus A A A[ A] und aus c c c[ c] werden.
Bei diesem einfachen Beispiel kriege ich es zwar hin, aber ich hatte es mir mit back references einfacher vorgestellt, aber es funkioniert leider nicht, und ich kriege nicht raus, warum. Hier mein Code:
Code: Alles auswählen
#!/usr/bin/env python3
import re
Text = """
A B C D
E F G H
A A B A
X Y Z F
c c d c
"""
# das Muster A A B A soll durch A[ A ] und c c durch c[ c] ersetzt werden
#neuerText = re.sub(r"([Ac]\s)([Ac]\s)",r"\1[ \2] ",Text) #das klappt
neuerText = re.sub(r"(?P<test>[Ac]\s)\g<test>",r"\g<test>[ \g<test>] ",Text ) # klappt nicht, wieso?
print(neuerText)