Hallo liebe Helfer, ich weiß einfach nicht mehr weiter.
Ich bin dabei, folgenden String mit regulären Ausdrücken zu parsen:
Dazu benutze ich diesen regulären Ausdruck:
Er gibt mir mit preg_match_all() immer die Pärchen von Variable und der Zuweisung.
Soweit so gut. Er teilt mir das wunderbar in die Variablennamen und die Zuweisung auf.
Wie man vielleicht sieht, habe ich versucht, ein Anführungszeichen " als \" darzustellen.
Das klappt auch. Dazu muss ich ein Backslash als \\ darstellen. Klappt fast.
Hier bin ich jetzt bei meinem Problem. Ich habe einen leeren Text in der Zuweisung schon zugelassen, als Sonderfall, da
zwingend ein Zeichen verlangt, es jedoch kein \ sein darf (es sind 4 Backlashes, um einmal für PHP zu Escapen und dann für den regulären Ausdruck, der Fehler hatte mich schon über 2 Stunden gekostet).
Was nicht funktioniert, ist folgender Eingabestring:
Ein Backslash kann ich am Ende also nicht einfügen, dann produziert er Blödsinn.
Ich habe auch schon versucht, dass noch als Sonderfall abzutun:
Dann bricht er jedoch schon vor dem Anführungszeichen ab, wenn ich so einen Eingabestring habe:
Als Inhalt erhalte ich dann
Was rauskommen sollte ist jedoch:
Die escapten Zeichen werden dabei später im Script ersetzt.
Diverse Abwandlungen habe ich auch versucht, aber die funktionierten noch weniger.
Kann mir jemand einen Tipp geben?
Gruß hpvw
Ich bin dabei, folgenden String mit regulären Ausdrücken zu parsen:
Code:
variable1="irgendEinText" variable2="noch ein Text" variable3=variable4
Code:
"/ ([a-zA-Z0-9_]+)=([\"](()|(.*?[^\\\\]))[\"]|[a-zA-Z0-9_]+)/"
Soweit so gut. Er teilt mir das wunderbar in die Variablennamen und die Zuweisung auf.
Wie man vielleicht sieht, habe ich versucht, ein Anführungszeichen " als \" darzustellen.
Das klappt auch. Dazu muss ich ein Backslash als \\ darstellen. Klappt fast.
Hier bin ich jetzt bei meinem Problem. Ich habe einen leeren Text in der Zuweisung schon zugelassen, als Sonderfall, da
Code:
[^\\\\]
Was nicht funktioniert, ist folgender Eingabestring:
Code:
variable1="Ein Text der komisch endet\\"
Ich habe auch schon versucht, dass noch als Sonderfall abzutun:
Code:
"/ ([a-zA-Z0-9_]+)=([\"](()|(.*?(\\\\\\\\)*?)|(.*?[^\\\\]))[\"]|[a-zA-Z0-9_]+)/"
Code:
variable1="Das ist ein \"Zitat\" von mir."
Code:
Das ist ein \
Code:
Das ist ein \"Zitat\" von mir.
Diverse Abwandlungen habe ich auch versucht, aber die funktionierten noch weniger.
Kann mir jemand einen Tipp geben?
Gruß hpvw