2017-03-14 10 views
-1

Ich möchte einige Strings über reguläre Ausdrücke suchen. Die Strings sehen so aus: search/b/109/p/93.Regulärer Ausdruck funktioniert nicht. Immer falsch im Gegenzug. PHP

habe ich versucht, so etwas wie dieses, aber es gibt false:

preg_match('search/b/[0-9]+/p/*', $string); 

Das gibt mir false auch wenn die Zeichenfolge search/b/109/p/93 ist.

+0

https://regex101.com/ – Pete

+1

Versuchen preg_match eine 0 zurück, wenn keine Übereinstimmung gefunden wird, gibt es falsch nur wenn deine Regex nicht korrekt ist. du hast zum Beispiel kein Trennzeichen definiert –

+3

auch was ist '/ *', meinst du '/.*'? – xander

Antwort

4

Sie müssen einige delimiters in Ihrem regex (# in meinem Beispiel) hinzufügen:

preg_match('#search/b/[0-9]+/p/*#i', $string); 
+0

Danke, es funktioniert :) –

0

Versuchen:

search\/b\/[0-9]+\/p\/* 

Dies entgeht dem Schrägstrich.

So Ihr Code in php wäre:

preg_match('/search\/b\/[0-9]+\/p\/*/',$string); 

Dies würde 1 zurück, wenn mit: search/b/109/p/93 als $string

+0

@ chris85 Das funktioniert auch richtig? Was ist falsch an dieser Methode? – Loko

+0

@ chris85 Ich werde diesen Teil entfernen. Dies ist jedoch immer noch eine alternative Lösung. – Loko

0

Sie Klammern verwenden, sollten Variablen zu erhalten.

search/b/([0-9]+)/p/([0-9]+) 

ist gut für 2 Variablen

search/b/[0-9]+/p/([0-9]+) 

für letzte nur

Verwandte Themen