Regular expressions: Ändern der Reihenfolge mit VAR Teil!
Verfasst: Freitag 29. Mai 2009, 17:21
Hallo zusammen,
ich verwende Python noch nicht so lange
Ich möchte eine Textdatei mit einem Pythonscript bearbeiten um das Format zu ändern, was bisher auch gut funktioniert hat. Nun stehe ich vor einem Problem, das ich bisher leider nicht lösen konnte.
Der größte Teil des eigentlichen Problems war feststehende Begriffe wie TEXT_A durch TEXT_B zu ersetzten. Das habe ich mit Hilfe von regular expressions gelöst.
Nun habe ich aber das Problem, dass ich an einer Stelle zusätzlich erst die Reihenfolge vertauschen möchte, sprich
TEXT_A(a) TEXT_A(b) durch TEXT_B(b) TEXT_B(a)
und zweitens sowohl TEXT_A(a) und TEXT_A(b) enthalten einen variablen Teil, der auch erhalten bleiben soll, sprich
XAXAXA<variabler Teil>XAXAXA.
Beides zusammen soll dann als Ergebnis ergeben:
ursprünglicher Text
XAaXAaXAa<variabler Teil A>XAaXAaXAa
XAbXAbXAb<variabler Teil B>XAbXAbXAb
veränderter Text
XBbXBbXBb<variabler Text identisch zu _Ab>XBbXBbXBb
XBaXBaXBa<variabler Text identisch zu _Aa>XBaXBaXBa
Ich habe bisher versucht wildcards einzubauen oder Variablen zu definieren ... war aber eher erfolglos damit (in der Ausgabe der Variablen im Ersetze-Teil der regular expression).
Habe auch versucht nach Schlagwörtern wie pattern, sequence und strings zu suchen ... habe aber nichts entdeckt was meinem Problem nahe kam.
Also falls jemand mir einen Hinweis geben könnte wie ich das Problem lösen kann oder mit welcher Art von Konstruktion man das ganze geschickt angehen könnte wäre ich echt dankbar
Gruss Cleo
ich verwende Python noch nicht so lange
Ich möchte eine Textdatei mit einem Pythonscript bearbeiten um das Format zu ändern, was bisher auch gut funktioniert hat. Nun stehe ich vor einem Problem, das ich bisher leider nicht lösen konnte.
Der größte Teil des eigentlichen Problems war feststehende Begriffe wie TEXT_A durch TEXT_B zu ersetzten. Das habe ich mit Hilfe von regular expressions gelöst.
Code: Alles auswählen
fh = open('DOC_A','r')
stuff = fh.read()
fh.close()
new_stuff = re.sub('TEXT_A','TEXT_B',stuff)
fh = open('DOC_B','w')
fh.write(new_stuff)
fh.close()
TEXT_A(a) TEXT_A(b) durch TEXT_B(b) TEXT_B(a)
und zweitens sowohl TEXT_A(a) und TEXT_A(b) enthalten einen variablen Teil, der auch erhalten bleiben soll, sprich
XAXAXA<variabler Teil>XAXAXA.
Beides zusammen soll dann als Ergebnis ergeben:
ursprünglicher Text
XAaXAaXAa<variabler Teil A>XAaXAaXAa
XAbXAbXAb<variabler Teil B>XAbXAbXAb
veränderter Text
XBbXBbXBb<variabler Text identisch zu _Ab>XBbXBbXBb
XBaXBaXBa<variabler Text identisch zu _Aa>XBaXBaXBa
Ich habe bisher versucht wildcards einzubauen oder Variablen zu definieren ... war aber eher erfolglos damit (in der Ausgabe der Variablen im Ersetze-Teil der regular expression).
Habe auch versucht nach Schlagwörtern wie pattern, sequence und strings zu suchen ... habe aber nichts entdeckt was meinem Problem nahe kam.
Also falls jemand mir einen Hinweis geben könnte wie ich das Problem lösen kann oder mit welcher Art von Konstruktion man das ganze geschickt angehen könnte wäre ich echt dankbar

Gruss Cleo