php 正则 不包含某字符串的正则表达式
推荐于2017-08-23
常见函数 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);
但是要匹配一个字符串中,不包含某字符串,用正则就比较麻烦了。
如果不用正则如下就可以解决问题