Ich habe eine Parameterdatei des FormularsPython string.replace regulärer Ausdruck
parameter-name parameter-value
, wo die Parameter in beliebiger Reihenfolge sein können, aber es ist nur ein Parameter pro Zeile. Ich möchte den Parameterwert eines Parameters durch einen neuen Wert ersetzen.
Ich benutze eine Zeile ersetzen Funktion zuvor (Search and replace a line in a file in Python), um die Zeile, die Python string.replace (Muster, subst) verwendet ersetzt. Der reguläre Ausdruck, den ich verwende, funktioniert zum Beispiel in vim, scheint aber in string.replace nicht zu funktionieren. Hier ist der reguläre Ausdruck, die ich verwende:
line.replace("^.*interfaceOpDataFile.*$/i", "interfaceOpDataFile %s" % (fileIn))
wo interfaceOpDataFile ist der Parametername, den ich ersetzen (/ i für Groß- und Kleinschreibung) und der neue Parameterwert ist der Inhalt der FileIn variabel. Gibt es eine Möglichkeit Python zu bekommen diesen regulären Ausdruck zu erkennen oder sonst wird es eine andere Möglichkeit, diese Aufgabe zu erfüllen? Danke im Voraus.
außerhalb der Schleife gibt es gute Ratschläge, schöne Nuance Mit kompilieren - danke. – pokero
Ich hatte in 'flags = re.MULTILINE' als das letzte Argument' re.sub' um diese, was Sinn macht, zur Arbeit zu kommen passieren - [hier über sie in der Dokumentation lesen] (https: // docs .python.org/2/library/re.html # re.MULTILINE) – tobek
regex Compilations werden zwischengespeichert ([docs] (https://docs.python.org/3.6/library/re.html#re.compile)) , so kompilieren ist nicht einmal notwendig. Aber wenn Sie kompilieren, kompilieren Sie außerhalb der Schleife. – alttag