So schließen Sie eine bestimmte Zeichenfolge im regulären PHP-Ausdruck aus

藏色散人
Freigeben: 2023-03-07 18:12:01
Original
3373 Leute haben es durchsucht

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.

So schließen Sie eine bestimmte Zeichenfolge im regulären PHP-Ausdruck aus

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”
Nach dem Login kopieren

2. Reguläre Übereinstimmung

strstr($str, "abc");
Nach dem Login kopieren

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);
Nach dem Login kopieren

2 Aber mit regulären Ausdrücken ist das alles

!strstr($str, "abc");
Nach dem Login kopieren

Vollständiges Codebeispiel

Der Code lautet wie folgt:

preg_match("/^((?!abc).)*$/is", $str);
Nach dem Login kopieren

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!"; 
 }
Nach dem Login kopieren

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!

Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage