Sponsor-Board.de

Normale Version: Regex Hilfe
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

ich bastel gerade ein wenig mit Regex rum für ein winziges Hobby-Projekt und da habe ich nun ein Problem wo ich selbst gerade nicht weiter komme.

Ich möchte einen Regex bauen, der alles zwischen einem Start- und Endtag matcht. Der Regex ist soweit schon funktional, allerdings weiß ich nicht wie ich den Kram zwischen den Tags capturen kann, da der '.' nur alles, außer Newline nimmt, direkt aber nach dem Starttag meistens ein Newline schon kommt. Wie kann ich ALLES matchen? Sodass es ganz egal ist, was zwischen den Tags steht?

Vielen Dank für eure Hilfe Smile
Hei Dream-Code,

kannst du bitte zwei drei Beispiele für so einen String posten (ohne nennenswerte Inhalte) - dann kann man sich das etwas besser klar machen.
Zeig mal bitte deinen aktuellen regex..
Wenn es sich um HTML Tags handelt, würde ich nen HTML Parser empfehlen Biggrin
Es handelt sich um kein Geheimprojekt, kann gerne auch mehr posten Biggrin dachte nur ihr habt direkt ne Idee. Nein, HTML ist es nicht, ich erfinde das Rad nicht komplett neu, sondern nur so halb Tongue

Hier der aktuelle Regex:

Code:
\{\{\ *loop\ *(\$[a-zA-Z1-9]*|\'[a-zA-Z0-9]*\')\ *([<>=]{1,2})\ *(\$[a-zA-Z1-9]*|\'[a-zA-Z0-9]*\')\ *\}\}[\r\n][a-zA-Z0-9]*\{\{\ *\/loop\ *\}\}


Und da wo "[\r\n][a-zA-Z0-9]*" steht, soll eben der Teil rein, der alles zwischen den Tags captured. Das was ich da habe funktioniert leider irgendwie nicht, aber ich hab auch wenig Ahnung von Regex ^^

Hier mal Beispielkram, das fettgedruckte sollte eben gematcht werden:

Zitat:
This is some random content
{{ loop 'test' = $test }}
asds
{{ /loop }}

More random things.


Und nein, ich arbeite nicht an einer neuen Programmiersprache, auch wenn es so aussieht. Ich spiele nur ein wenig rum.

Code:
([\s\S]+)

matcht alles

Code:
\{\{\ *loop\ *(\$[a-zA-Z1-9]*|\'[a-zA-Z0-9]*\')\ *([<>=]{1,2})\ *(\$[a-zA-Z1-9]*|\'[a-zA-Z0-9]*\')\ *\}\}[\s\S]*\{\{\ *\/loop\ *\}\}

sollte so funktionieren

Funktioniert perfekt, danke Smile
Kannst du das erklären? Also wofür steht die Escape-Sequenz?

# Edit: Hat sich erledigt, habs ganz unten in der Referenz gesehen in der ich zuletzt gesucht hab.
Referenz-URLs