Der StringPython: string & Liste re.sub Vergleich
txt = "this is a red house"
hat entstanden. Und dann gibt es eine Liste
patterns = ["thi", "a r", "use"]
mit einigen Übereinstimmungen dafür.
Der Plan war a = re.sub("".join(patterns), "".join(patterns) + "^", txt)
zu verwenden, was ich gehofft als thi^s zurückkehren würde, ist ein r^^ ed Haus. Nicht so sehr - es druckt nur die Zeichenfolge wieder. Wenn stattdessen re.search
verwendet wird, gibt es tatsächlich None
zurück, der Grund ist, dass re.sub
nichts findet, einfach die Zeichenfolge zurückgibt.
Ich war bereit, die Stecker auf diese zu ziehen, zu denken, dass re.sub
kann einfach nicht so, wie ich es könnte dachte, verwendet werden, und dann habe ich versucht, es aus Versehen in einer einfachen Schleife:
for i in patterns:
a = re.sub(i, i + "^", txt)
print(a)
Und plötzlich es (fast) gearbeitet: thi^s ein rotes Haus [\ n] dies ar^ed Haus [\ n] dies ist ein rotes Haus^. Jetzt kann ich es nicht einfach gehen lassen. Was ist los?
Was genau ist Ihre Frage? –
Zuerst würde ich herausfinden, wie eine funktionierende Regex aussehen sollte, bevor ich sie dynamisch konstruiere. Ihr Aufruf an 're' erzeugt die ursprüngliche Eingabe, weil Ihre konstruierte Regex keiner übereinstimmt, also wird nichts ersetzt. – Blender
Sie sehen, das ist, was ich dachte. Und dann stimmte es in der Schleife überein. Wenn die konstruierte Regex nichts zusammenbringt, warum funktioniert sie dort? –