Ich habe Datei welche die folgenden Aussagen enthält.
start < some 50 words > End //need to work only on these types
start < some 50 words >
start < some 50 words > End
start < some 50 words >
< some 50 words > End
... Dieses Muster wird 10000 Mal wiederholt. Ich möchte die Zeilen ersetzen, die am Anfang "start" und am Ende "End" mit haben
start2 <same 50 words > End2.
Ich muss die gleichen Wörter zwischendurch behalten, nur den Anfang und das Ende ändern.
Antworten:
1 für die Antwort № 1import re
data = """start < some 50 words > End
start < some 50 words >
start < some 50 words > End
start < some 50 words >
< some 50 words > End
"""
print re.sub("start(.*)End", "start2g<1>End.", data)
Drucke:
start2 < some 50 words > End.
start < some 50 words >
start2 < some 50 words > End.
start < some 50 words >
< some 50 words > End
1 für die Antwort № 2
Reguläre Ausdrücke sind mehr Arbeit, als Sie für dieses Problem benötigen - alles kann einfacher mit einfachen alten Zeichenfolgenmethoden durchgeführt werden:
def ReplaceStartEnd(s):
... if s.startswith("start") and s.endswith("End"):
... return "start2" + s[5:-3] + "End2"
... else:
... return s