Ich habe die folgende reguläre Ausdruck Substitution ersetzen:Verwenden von regulären Ausdrücken überlappende Teilmuster
input=re.sub(r"([a-zA-Z0-9])\s+([a-zA-Z0-9])" , r"\1*\2" , input)
Ich benutze den regulären Ausdruck auf der Saite "3 a 5 b"
.
Ich bekomme zurück "3*a 5*b"
.
Ich denke, ich sollte zurück "3*a*5*b"
bekommen.
Also irgendwie stören meine regulären Ausdruck Ersetzungen einander.
Was kann ich tun, um das gewünschte Ergebnis zu erhalten, außer iterativen Läufen des regulären Ausdrucks?
input = re ("", "*", input) - das bringt dir was du willst – PurityLake
Nein, @PurityLake, tut es nicht. Das würde zu einem fehlerhaften Ersatz in der Zeichenfolge "3/a 5! B" führen. – Richard
Entschuldigung, ich habe nur gedacht, dass Sie die Leerzeichen durch "*" ersetzen wollten. – PurityLake