Webstatt.org - Community seit 2006 - 2012 (2024?)

Regex-Problem ({...})

Avatar user-168
11.05.2006 16:48

Ich ersetze einen Regex, der wie folgt lautet:

'#{'.$id.'}#'

Also sollte aus {datum} das Datum entsprechend werden. Allerdings habe ich das Datum in Klammern gepackt:

({datum}) und nun klappt das alles überhaupt nicht mehr. Mein ganzes Templatesystem ist mit der Zeile dann verbugt ohne Ende. Wenn ich die Klammern weg nehme, gibt es kein Problem. Wenn ich nur eine von den runden Klammern wegnehme, schreibt er was von parathesies oder so.

Wie kann ich das beheben?

Danke schonmal für alle Ratschläge.

Dustwolf ------------------------- Und wenn du lange in einen Abgrund blickst, blickt der Abgrund auch in dich hinein. F. Nietzsche
Avatar user-255
11.05.2006 17:41

In regulären Ausdrücken sind auch geschweifte Klammern Sonderzeichen, die escaped werden wollen:
$exp = '#\{'.$id.'\}#';

Those who can, do. Those who can't, teach. # Musik gehört dem Volk! # last.fm
Avatar user-168
11.05.2006 19:03

OK, danke. Aber wieso stört ihn das nur bei der Kombination mit den runden Klammern davor?

Ich habe auch mal gelesen, dass man Sonderzeichen nciht unbedingt escapen muss. Deswegen soll man ja auch bestimmte Delimeter verwenden.

Dustwolf ------------------------- Und wenn du lange in einen Abgrund blickst, blickt der Abgrund auch in dich hinein. F. Nietzsche
Avatar user-253
11.05.2006 20:02

Original von user-168
Ich habe auch mal gelesen, dass man Sonderzeichen nciht unbedingt escapen muss. Deswegen soll man ja auch bestimmte Delimeter verwenden.


Dann musst du die Begrenzer nicht escapen. Sonderzeichen musst und sollst du immer escapen. Alles andere schnellst möglich vergessen.

Avatar user-168
11.05.2006 20:04

Ah, OK. user-158ke. Fettes Grinsen

Dustwolf ------------------------- Und wenn du lange in einen Abgrund blickst, blickt der Abgrund auch in dich hinein. F. Nietzsche
Avatar user-168
12.05.2006 13:51

So, leider hat es doch ncihts geholfen...

Mein Templatesystem kann bei Tabellenzeilen auch dublizieren:

<!-- ANFANG news -->
...
<!-- ENDE news -->

Da würde er nen Objekt anlegen in das man halt wieder Einträge schreiben kann. Das ganze ersetzt er normalerweise auch einfach durch {news} und setzt da dann den Block wieder ein.


Nur wenn ich das Klammerkonstrukt da stehen habe, lässt er die Kommentarzeilen da einfach stehen. Hab jetzt auch escapted....

Dustwolf ------------------------- Und wenn du lange in einen Abgrund blickst, blickt der Abgrund auch in dich hinein. F. Nietzsche