Heim > Artikel > Backend-Entwicklung > So schließen Sie eine bestimmte Zeichenfolge im regulären PHP-Ausdruck aus
So verwenden Sie einen regulären PHP-Ausdruck, der keine bestimmte Zeichenfolge enthält: Erstellen Sie zunächst eine PHP-Beispieldatei. Verwenden Sie dann den regulären Ausdruck „preg_match(“/[^(abc)]/s“, $str, $arr);“ um festzustellen, ob Nur eine bestimmte Zeichenfolge enthalten ist.
Empfohlen: „PHP-Video-Tutorial“
Gemeinsame Funktionen strstr($str, „abc“);
Reguläres Matching preg_match(“/(abc)?/is“, $str); Wenn Sie jedoch eine Zeichenfolge abgleichen möchten, die keine bestimmte Zeichenfolge enthält, ist die Verwendung regulärer Ausdrücke schwieriger. Wenn Sie keine regulären Ausdrücke verwenden!strstr($str, „abc“);, können Sie das Problem lösen . Aber mit regulären Ausdrücken ist das alles eine andere Zeichenfolge, wie folgt:
1 . Allgemeine Funktionen
//------------------------------------------------ 代码如下: <?php $str = "dfadfadf765577abc55fd"; $pattern_url = "/^((?!abc).)*$/is"; if (preg_match($pattern_url, $str)){ echo "不含有abc!"; }else{ echo "含有abc!"; } ?> //------------------------------------------------ 结果为:false,含有abc! $str = “2b3c4d5c”; 注意:[^(abc)] 这个语法是逐个检查$str中的字符是否不在 a b c中, preg_match(”/[^(abc)]/s”, $str, $arr); 其中字符 2 就不在 a b c 中,所以$arr返回值为2; 同时匹配,包含字符串 “abc”,而且不包含字符串 “xyz” “/(abc)[^((?!xyz).)*$]/s”
strstr($str, "abc");
Wenn Sie jedoch eine Zeichenfolge abgleichen möchten, die keine bestimmte Zeichenfolge enthält, ist die Verwendung regulärer Ausdrücke schwieriger. 1. Wenn Sie keine regulären Ausdrücke verwenden, können Sie das Problem wie folgt lösen
preg_match("/(abc)/is", $str);2 Aber mit regulären Ausdrücken ist das alles
!strstr($str, "abc");Vollständiges CodebeispielDer Code lautet wie folgt:
preg_match("/^((?!abc).)*$/is", $str);Das Ergebnis ist: falsch, enthält abc!
Gleichzeitig den regulären Ausdruck abgleichen, der die Zeichenfolge „abc“ und nicht die Zeichenfolge „xyz“ enthält:
preg_match("/(abc)[^((?!xyz).)*$] /is" , $str);
Diese Methode ist effektiv. Ich verwende sie wie folgt:
$str = "dfadfadf765577abc55fd"; $pattern_url = "/^((?!abc).)*$/is"; if (preg_match($pattern_url, $str)) { echo "不含有abc!"; } else { echo "含有abc!"; }
Aber am Ende stellte sich heraus, dass diese Methode äußerst ineffizient ist. Bei der Verarbeitung sehr kurzer Texte (es sind zehn erforderlich um mit dem gleichen Teil des regulären Ausdrucks übereinzustimmen) Ein paar Wörter oder höchstens Dutzende) Zeit kann in Betracht gezogen werden, aber wenn es zum Parsen eines großen Artikels verwendet wird oder wenn mehrere Übereinstimmungszeiten geändert werden müssen, sollte die Übereinstimmungszeit nicht berücksichtigt werden Erwägen Sie stattdessen die Verwendung anderer Methoden (z. B.: Analysieren Sie zuerst den abzugleichenden Absatz. Text mit regulären Ausdrücken und überprüfen Sie dann, ob ein bestimmter Text vorhanden ist.) Reguläre Ausdrücke sind keine sehr effektive Methode zum Abgleichen von Textfeldern, die keinen Text enthalten bestimmte Saiten.
Das obige ist der detaillierte Inhalt vonSo schließen Sie eine bestimmte Zeichenfolge im regulären PHP-Ausdruck aus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!