Hi,
Habe folgendes in einem String:
Ich will den Ihnalt in den eckigen Klammern bekommen.
Meine bisheige regexp sieht so aus:
Also darf in der Klammer alles bis auf "]" (entspricht \x5D) sein. Gut nun hätte ich aber gerne die Möglichkeit die eckigen Klammern zu escapen sprich \] nicht als Ende des Bereichs zu sehen. Dafür ist der letzte Teil da (also das [^\\\]]* ).
Klarerweise darf ein escaptes \] hier nur am Ende der Klammern stehen, es soll aber überall stehen dürfen.
Hoffe ihr verzeiht mir die lange Erklärerei
Wie baue ich also das ^\\\] in die erste Charactergruppe so ein, dass so ein \] überall stehen darf?
Habe es schon mit Dingen wie
[^\\\]\x00-\x5C\x5E-\xFF]*
probiert, aber da scheitert es scheinbar daran, dass \ und ] ja 2 Zeichen sind; Ich müsste die irgendwie zusammenfassen können...in der PHP-Dokumentation habe ich darüber aber nichts finden können (http://at2.php.net/manual/de/reference.pcre.pattern.syntax.php)
Hoffe ihr wisst Rat.
mfg
visp
Habe folgendes in einem String:
Code:
Test [$variable:blalba] oder auch [funktion blabla]
Meine bisheige regexp sieht so aus:
PHP:
$regexp = '#[\\\]*\[([\x00-\x5C\x5E-\xFF]*[^\\\]]*)\]#';
$string = preg_replace_callback($regexp, "callback", $string);
Klarerweise darf ein escaptes \] hier nur am Ende der Klammern stehen, es soll aber überall stehen dürfen.
Hoffe ihr verzeiht mir die lange Erklärerei
Wie baue ich also das ^\\\] in die erste Charactergruppe so ein, dass so ein \] überall stehen darf?
Habe es schon mit Dingen wie
[^\\\]\x00-\x5C\x5E-\xFF]*
probiert, aber da scheitert es scheinbar daran, dass \ und ] ja 2 Zeichen sind; Ich müsste die irgendwie zusammenfassen können...in der PHP-Dokumentation habe ich darüber aber nichts finden können (http://at2.php.net/manual/de/reference.pcre.pattern.syntax.php)
Hoffe ihr wisst Rat.
mfg
visp