Hallo,
habe ein MyCode definiert, was aber nicht ganz funktioniert und ich verstehe nicht warum.
MyCode:
Code:
Regulärer Ausdruck:
(.*?) ::(.*?)
Ersetzung:
anfang$1 ::$2ende
Testwert:
1 ::2
Soll-HTML-Ergebnis:
anfang1 ::2ende
Ist-HTML-Ergebnis:
anfang1 ::ende2
Problem: Die Definition der zweiten Variable wird nicht erkannt. Warum?
LG
Um reguläre Ausdrücke zu testen, empfehle ich diese Seite:
https://www.regexpal.com/
Das Problem hier ist, dass beide Ausdrücke leer sein dürfen (dafür sorgt jeweils das Fragezeichen). Deswegen darf direkt nach den Doppelpunkten abgebrochen werden. Hier sollte das Suchmuster entsprechend verfeinert werden. "(.*?)" bedeutet halt wirklich alles oder nichts.
? bedeutet "so wenig wie möglich", das frisst sich dann nicht grundlos weiter
insgesamt ist das ein ziemlich unbequemer MyCode, weil er eben keine klaren Grenzen aufweist.
Das wird also wahrscheinlich auch anders nicht wirklich so wie gewünscht funktionieren.
Danke Euch!
Also ich habe nun
(.*?) ::(.*)
ausprobiert und das funktioniert, passend zu dem, wie ich meine Frage gestellt habe, nämlich, wie wenn es nur eine Zeile mit :: gäbe.
Mein Text hat jedoch um die zweitausend Zeilen mit :: . Ich wusste nicht, dass das relevant ist, bzw. ich dachte, die Ersetzung gilt sowieso zeilenweise.
In meinem Fall muss also die hintere Begrenzung vom zweiten (.*?) der Zeilenumbruch sein. Mit
(.*?) ::(.*?)\n
funktioniert es nun.