2016-05-26 6 views
-2

ich einen regulären Ausdruck möchte die Teil „Typ I“ entsprechen und NICHT „Typ II“Substring Regex

PHP

Die folgenden Arbeiten für einen einzigen Fall, aber ich bin es läuft in einer Schleife, und nicht in allen Fällen mit einer Wortgrenze

preg_match('/Type I\b/', $string) 

Datensatz mit gewünschtem Ergebnis Ende:

Type I #pass 
Type I, #pass 
, Type I, #pass 
Type II #fail 
Type II, #fail 
, Type II, #fail 
+0

Ich verstehe Ihre Frage nicht, was ist Ihre Eingabe und Ihre erwartete Ausgabe? –

+0

Was ist der Datensatz? – rock321987

+0

Aber Ihr Muster '/ Type I \ b /' funktioniert korrekt. nicht wahr? https://regex101.com/r/hF0wP2/1 entspricht "Typ I" und NICHT "Typ II" ... –

Antwort

1

https://regex101.com/r/fH9yV2/1

$re = "/Type I(?!I)/"; 

Dies nimmt Ihr Type I und behauptet, dass das nächste Zeichen ist nicht eine andere I.

Für mehr über Lookarounds Behauptungen: http://www.regular-expressions.info/lookaround.html

Es scheint, dass Sie nur regex zu verstehen beginnen. Ich schlage vor, dass Sie sich mehr auf der oben genannten Website umsehen, da es ein großartiges Werkzeug zum Lernen von Regex ist.

+0

Die Lookarounds waren was ich brauchte – cbourn