ホームページ  >  記事  >  バックエンド開発  >  PHPの正規表現で特定の文字列を除外する方法

PHPの正規表現で特定の文字列を除外する方法

藏色散人
藏色散人オリジナル
2020-11-20 09:42:133372ブラウズ

PHP 正規表現を使用して特定の文字列を含まないようにする方法: 最初に PHP サンプル ファイルを作成し、次に正規表現 "preg_match("/[^(abc)]/s", $str, $ を使用します) arr); "特定の文字列が含まれていないという判定を実装するだけです。

PHPの正規表現で特定の文字列を除外する方法

推奨: 「PHP ビデオ チュートリアル

共通関数 strstr($str, "abc" );
通常のマッチング preg_match("/(abc)?/is", $str);
ただし、特定の文字列を含まない文字列と一致させたい場合は、通常のマッチングを使用する方が面倒です
正規表現を使わずに問題が解ける場合 !strstr($str, “abc”);
しかし、正規表現を使うと「/^((?!abc).)」しかありません。 *$/is”

//------------------------------------------------ 
代码如下:
 <?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”

以下は補足です:

文字列に別の文字列が含まれているかどうかを判断するには、次のように多くの方法があります:

1. 共通関数

strstr($str, "abc");

2. 正規一致

preg_match("/(abc)/is", $str);

ただし、特定の文字列を含まない文字列と一致させたい場合は、通常の一致を使用する方が面倒です。マッチング。
1. 正規表現を使用しない場合は、次のように問題を解決できます

!strstr($str, "abc");

2。ただし、正規表現を使用すると、それだけです。

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

完全なコード例

コードは次のとおりです:

$str = "dfadfadf765577abc55fd"; 
 $pattern_url = "/^((?!abc).)*$/is"; 
 if (preg_match($pattern_url, $str)) 
 { 
 echo "不含有abc!"; 
 } 
 else 
 { 
 echo "含有abc!"; 
 }

結果は次のようになります: false、abc が含まれています!

文字列「abc」を含み、文字列「xyz」を含まない正規表現を同時に照合します。

preg_match("/(abc)[^((? !xyz) .)*$]/is", $str);

この方法は効果的です。私は次のように使用します。

 (?:(?!<\/p>).|\n)*? //匹配不含</p>的一个字符串

しかし、最終的には、これがこのメソッドは非常に非効率的です。非常に短いテキスト (正規表現の同じ部分に一致する必要がある単語が 12 個、最大でも数十個ある) を処理する場合にはこのメソッドの使用を検討できますが、解析時にはこのメソッドを使用しないでください。大きな記事や、複数の場所で一致時間を変更する必要がある場合は、代わりに他の方法を使用することを検討してください (たとえば、最初にテキストを解析して正規表現と一致させ、次にその中に特定のテキストが存在するかどうかを確認します)。式は、特定の文字列を含まないテキスト フィールドの照合にはあまり効果的ではありません。

以上がPHPの正規表現で特定の文字列を除外する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。