PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : preg_replace: zeichenkette mit klammern



abc
05-08-2006, 21:07
hallo,

Ich wollte wissen, ob es eine möglichkeit gibt, bei preg_replace in der zu suchenden zeichenkette auch klammern zu benutzen. Wenn ich als zu ersetzende zeichenkette z.b.
findtext = '/:)/'; benutze, erscheint beim anzeigen der seite nämlich der folgende fehler:
Warning: preg_replace(): Compilation failed: unmatched parentheses at offset 1...

ich würde gerne trotzem klammern verwenden können

mfg abc

Romanday
06-08-2006, 04:40
hallo,
ich würde gerne trotzem klammern verwenden können

mfg abc

Pack die mal in eine Zeichenklasse, dann funktioniert es.

undefined
06-08-2006, 08:16
hallo,

Ich wollte wissen, ob es eine möglichkeit gibt, bei preg_replace in der zu suchenden zeichenkette auch klammern zu benutzen. Wenn ich als zu ersetzende zeichenkette z.b.
findtext = '/:)/'; benutze, erscheint beim anzeigen der seite nämlich der folgende fehler:
Warning: preg_replace(): Compilation failed: unmatched parentheses at offset 1...

ich würde gerne trotzem klammern verwenden können

mfg abc
Klammern sind Metazeichen das heist sie müssen geslasht werden.

findtext = '/:\)/';

Romanday
06-08-2006, 15:29
Klammern sind Metazeichen das heist sie müssen geslasht werden.

findtext = '/:\)/';

Nicht immer,
wie gesagt -> Zeichenklasse.

$suchmuster = '/[()]/';

undefined
06-08-2006, 16:36
Also manchmal frage ich mich wirklich wo du dir solche Aussagen herbei holst ? PHP ist ein Posix ERE ( Extendet Regular Expression ) Regexp und hier werden () zur Gruppenbildung verwendet. Unter ERE fallen TCL/PERL/PHP/.NET und Sun Java.
Ich empfehle dir das Buch Reguläre Ausdrücke von Jeffry E. F. Friedl. Mehr habe ich dazu nicht zu sagen ;)
PS: Dein oben gezeigtes Suchmuster bedeutet. Suche Guppe alles was nichts ist und das irgendwo. Da kannst du auch gleich .* schreiben das kommt auf gleiche raus.

Romanday
06-08-2006, 19:50
PS: Dein oben gezeigtes Suchmuster bedeutet. Suche Guppe alles was nichts ist und das irgendwo. Da kannst du auch gleich .* schreiben das kommt auf gleiche raus.


Hossa,
pflegte Rex Gildo immer zu sagen. :D

Hast du den mein Beispiel mal ausprobiert?
Funktioniert es?

(Wenn es funktioniert, erklärst Du den auch, warum es funktioniert?)

abc
07-08-2006, 07:52
besten dank an euch beide, obwohl ich nicht weiß, wer von euch recht hat, aber ich werde das auf beide arten probieren.

mfg abc