PHP 正規表現を使用して特定の文字列を含まないようにする方法: 最初に PHP サンプル ファイルを作成し、次に正規表現 "preg_match("/[^(abc)]/s", $str, $ を使用します) arr); "特定の文字列が含まれていないという判定を実装するだけです。
推奨: 「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 サイトの他の関連記事を参照してください。