php正则如何不包含某字符串

互联网 20-11-20

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);
!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>的一个字符串

但最终使用中结果是发现,该方法效率极其低下,在处理非常短文字(要匹配该正则式的相同部分的有十几个字,或者最多几十个)时间可以考虑使用,但当用于大篇幅文章解析或多处需要改种匹配时间应不使用,考虑用其他方法替代(如:先解析出要匹配该段正则式的文字,然后验证其中是否存在某段文字),正则表达式对于匹配不含特定字符串的文字段时并不是非常有效的方法.

以上就是php正则如何不包含某字符串的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
标签: PHP
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:如何解决php get 参数乱码问题

相关资讯