Re funktioniert nicht für mich

8

Ich versuche, re.sub zu erhalten, um ein Muster zu ersetzen, das zB mit einem Wert

angegeben ist %Vor%

gibt die Zeile zurück, in der das Muster gefunden wurde. Zum Beispiel ist dies einer der Test-Returns, wenn Sie

erhalten haben

Dies ist ein $$ Test $$

Das Problem, das ich habe, ist, wenn ich Folgendes tue

%Vor%

passiert nichts. Was vermisse ich? Für weitere Informationen key[0]=test und key[1]=replace Also, was ich versuche zu tun ist, wenn "$$ test $$" angetroffen wird, wird es durch "ersetzen" ersetzt. Ich habe kein Problem, "$$ test $$" zu finden, aber aus irgendeinem Grund ersetzt re.sub es nicht.

    
aport002 07.11.2011, 06:30
quelle

2 Antworten

11

Sie geben das Ergebnis von re.sub zurück auf eine Variable, oder? z.B.

%Vor%

Es ist eine Zeichenkette, daher kann sie nicht geändert werden (Zeichenketten sind in Python unveränderlich), daher wird eine neue Zeichenkette erstellt und an Sie zurückgegeben. Wenn Sie es nicht einem Namen zuweisen, verlieren Sie es.

    
kindall 07.11.2011, 06:32
quelle
2

Wenn Sie einen Text haben, können Sie re () direkt für den gesamten Text wie folgt ausführen:

%Vor%

.

Wenn Sie eine Datei lesen, sollten Sie Interesse daran haben, die gesamte Datei zu lesen und sie in ein Objekt ss zu schreiben, bevor Sie re () ausführen, anstatt Zeile für Zeile zu lesen und zu ersetzen

.

Und wenn Sie eine Liste von Zeilen haben, müssen Sie wie folgt verfahren:

%Vor%

Andernfalls würde eine Zeile, die '$$ test $$' enthält, nicht geändert:

%Vor%

Ergebnis

%Vor%     
eyquem 07.11.2011 06:49
quelle

Tags und Links