regex alles bis zu einem bestimmten Zeichen
lima-city → Forum → Programmiersprachen → Sonstige Programmiersprachen
anmerkung
code
dank
ende
erlauben
helfen
jemand
kleinschreibung
machen
paar
passen
problem
redundanz
schein
zeichen
-
Folgend habe ich einen kleinen Regex Code
(#{3})[^#]*((#{3}[eE][nN][dD][eE]#{3})?)
Hier ein bisschen in blöcke (nur zur Übersicht):
(#{3}) [^#]* ( #{3} [eE][nN][dD][eE] #{3} )?)
Das funtkionerit auch soweit nun möchte ich eigentlich statt [^#]* alle Zeichen .* erlauben doch nun ist bei ###Ende### nicht ende sondern er erkennt auch alle Zeichen danach.
Wieso? Ja weil ich ja alle Zeichen unendlich erlaube da macht er kein halt bei ###ende###
Wie kann ich das ändern?
Kann mir jemand helfen?
Danke schon mal.
MfG willstdueswissen -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Hallo willi,
wenn ich dein Problem jetzt richtig Verstanden haben, sollte das so passen:
###([a-z]+)\.((data|glob|fn)_([a-z]+)|(if)_\(([a-z]+)\)###(.*?)###endif)###
Ob Groß- oder Kleinschreibung schein ja egal zu sein, deswegen kann der Modifier
(case-insensitive) verwendet werden.i
Noch ein paar Anmerkungen dazu:
### <<< 1. ([a-z]+)\. ( <<< 2. (data|glob|fn)_([a-z]+) <<< 3. | (if)_\(([a-z]+)\)### <<< 4. (.*?)###endif <<< 5. ) ### <<< 6.
1. Ist immer am Anfang, also steht das auch da. 3 Zeichen sind weniger als 4, deswegen ausgeschrieben.
2. Hier reicht eine Klammer, die unterschiedlichen Möglichkeiten müssen nicht noch extra eingeklammert werden.
3. Da hier 3 alternative gegeben wurden wird kein look-around benötigt. Auch hier konnte man klammern entfernen
4. + 5. Wenn mit modifier
gearbeitet wird, sieht es Übersichtlicher ausi
6. Da am Ende immer ein
steht, kann dies auch aus der Klammer herausgezogen werden -> keine Redundanz!###
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage