Beiträge: 100
Themen: 13
Registriert seit: 19.04.2020
18.05.2021, 17:02
(Dieser Beitrag wurde zuletzt bearbeitet: 18.05.2021, 17:18 von masi1234.)
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
Beiträge: 25.762
Themen: 269
Registriert seit: 20.09.2005
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.
Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Beiträge: 2.318
Themen: 13
Registriert seit: 09.11.2008
? 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.
Beiträge: 100
Themen: 13
Registriert seit: 19.04.2020
19.05.2021, 15:32
(Dieser Beitrag wurde zuletzt bearbeitet: 19.05.2021, 15:44 von masi1234.)
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.