• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

preg_match problem

xXxPeterPanxXx

Neues Mitglied
Hi,

ich kriege es nicht hin auf den Text zwischen zwei Klammern ( und) zuzugreifen. Ich glaube es liegt an den Platzhaltern, die ich wahrscheinlich falsch verwende. In den Klammern stehen große Buchstaben, Zahlen und Bindestriche.

PHP:
$zeichen = preg_match("/([A-Z0-9-])/", $_POST['zeichen']);

MfG xXxPeterPanxXx
 
Klammern haben in regulären Ausdrücken immer eine besondere Bedeutung. Die runden Klammern werden auch als Gruppierungsoperator bezeichnet.

Der RegExp-Evaluator - RegExp-Tutorial - Metazeichen

Wenn du nach runden Klammern suchen willst, musst du diese escapen:

PHP:
$zeichen = preg_match("/\([a-z0-9\-]+\)/i", $_POST['zeichen']);
Damit auch mehr als ein Zeichen zwischen den Klammern vorkommen darf, musst du einen Quantifier ergänzen. Wenn du auch Klein- und Großbuchstaben gleichermaßen akzeptieren möchtest, solltest du dir mal die Modifier für reguläre Ausdrücke anschauen.
 
preg_match() gibt true aus, wenn der String gefunden wurde, andernfalls false. Wenn du die gefunden Strings haben möchtest, musst du preg_match() einen dritten Parameter übergeben.
 
Zurück
Oben