2017-01-24 2 views
0

Ich möchte einen regulären Ausdruck mit einer Zeichenfolge in Übereinstimmung mit Leerzeichen oder Sonderzeichen '/' übereinstimmen.Überprüfen Sie Leerzeichen oder spezielle Zeichen mit regulärem Ausdruck

Hier ist mein Code

preg_match_all('/[\s]+('.$pattern.')/', $p_des, $matches_product); 

Dieser Code, den Abstand properlly prüft, aber ich möchte auch OR-Bedingung enthalten, wenn sie entweder Raum überprüfen oder ‚/‘ oder Zahl.

Ich habe versucht, ein /[[0-9]\s\/]('.$pattern.')/' Muster, aber es stimmt nicht mit den Zeichenfolgen überein.

Danke.

+1

Also, versuchen Sie ' '/ [\ s \ /] ('. $ Muster. ') /'' –

+0

versuchen, diese Antwort http://stackoverflow.com/questions/6889963/regex-with- Raum-und-spezielle-Zeichen –

+0

Danke für Ihre Antwort @ WiktorStribiżew, es hat wirklich für mich gearbeitet. Angenommen, ich muss eine weitere Oder-Bedingung hinzufügen, um auch die Ziffer zu überprüfen. Dann wäre der Ausdruck /[[0-9]\s\/]('.$pattern.')/ '. Bitte korrigieren Sie mich, wenn ich falsch liege. –

Antwort

0

Ihre [[0-9]\s\/](string|text) Muster gebrochen ist, da eine Zeichenklasse [0-9] innerhalb einer Zeichenklasse gesetzt wird [\s\/], und die erste unescaped ] schließt die Zeichenklasse und den Rest der Zeichenklasse Muster wird als Sequenz behandelt von Untermustern ([[0-9]\s\/] passt [ oder Ziffer und dann ein Leerzeichen gefolgt mit /, zB 1 / oder [ 2).

Sie müssen stattdessen [0-9\s\/] oder [\d\s\/] verwenden.

preg_match_all('/[0-9\s\/]+('.$pattern.')/', $p_des, $matches_product); 
Verwandte Themen