PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Hilfe zu PHP reguläre Ausdrücke


Jonny1983
2013-09-16, 09:13:27
Hallo zusammen,

ich schaffe es nicht den richtign Ausdruck zu finden.
Gesucht ist ein regullärer Ausruck in PHP der sämtlich in Klammern stehende Begriffe löscht (inkl. Klammern).

Wie folgt sieht der Beispieldatensatz aus:
AA*BB(test1)*CC(test2)*DD(test3)*EE(test4)

Ergebnis soll sein:
AA*BB*CC*DD*EE

Das kann doch nicht so schwer sein oder?
Ich teste das gerade mit preg_replace oder sollte ich etwas anderes nutzen?

Gast
2013-09-16, 14:52:33
Easy-peasy: \(.*?\)

Jonny1983
2013-09-16, 15:21:39
Easy-peasy: \(.*?\)

Ich danke dir vielmals!
Nach einer Stunde habe ich es bereits aufgegeben. Hab es nie mit dem Fragezeichen probiert.

Coda
2013-09-16, 15:27:37
Das funktioniert übrigens nicht bei geschachtelten Klammern. Und das kannst du mit Regexps auch nicht machen, da reicht kontextfreie Grammatik nicht.

Gast
2013-09-16, 16:13:59
Das funktioniert übrigens nicht bei geschachtelten Klammern. Und das kannst du mit Regexps auch nicht machen, da reicht kontextfreie Grammatik nicht.

Doch, das geht. Wenn auch mit gewissen Einschränkungen: PHP: Recursive patterns - Manual (http://php.net/manual/regexp.reference.recursive.php)

creave
2013-09-16, 19:49:07
... da reicht kontextfreie Grammatik nicht.

Meintest du nicht eher das Gegenteil?

Eine reguläre Grammatik würde sicherlich nicht ausreichen, kontextfrei sollte aber drin sein (zumal reguläre Ausdrücke nur in der Theorie regulär sind, die Implementierungen gehen ja meist darüber hinaus, Lookbehind etc.)

Marscel
2013-09-17, 13:50:11
Meintest du nicht eher das Gegenteil?

Jo: http://de.wikipedia.org/wiki/Chomsky-Hierarchie#.C3.9Cbersicht

Eine reguläre Grammatik kann so ein Konstrukt nicht generieren, eine kontextfreie schon. Also muss man dafür zu einem Stack-Automaten greifen