当前位置:  首页  >  PHP教程  >  PHP 基础  >  开发经验

php正则如何不包含某字符串-PHP问题

php正则不包含某字符串的方法:首先创建一个PHP示例文件;然后通过正则表达式“preg_match(”[^(abc)]s”,$str,$arr);”实现判断不包含某字符串即可。

php正则不包含某字符串的方法:首先创建一个PHP示例文件;然后通过正则表达式“ preg_match(”/[^(abc)]/s”, $str, $arr);”实现判断不包含某字符串即可。

//------------------------------------------------ 
代码如下:
  
 
 //------------------------------------------------ 
 结果为: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)*? //匹配不含

的一个字符串

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

以上就是php正则如何不包含某字符串的详细内容,更多请关注 第一PHP社区 其它相关文章!

吐了个 "CAO" !
  • patebeng   2021-01-13 14:57:19
    离心泵 [url=http://www.cn]离心泵厂[/url]
  • patebeng   2021-01-13 14:57:31
    离心泵 离心水泵 螺杆泵 全焊接球阀 焊接球阀 多级泵 磁力泵 螺杆泵 上海离心泵 卧式离心泵 立式离心泵 螺杆泵厂 直埋全焊接球阀 埋地全焊接球阀 球阀厂 上海球阀 上海螺杆泵 离心泵 Fully Welded Ball Valve145 Welded Ball Valve192 Direct Buried Fully Welded Ball Valve2 Direct Buried Welded Ball Valve7
扫码关注 PHP1 官方微信号
PHP1.CN | 中国最专业的PHP中文社区 | json解析格式化 | PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved PHP1.CN 第一PHP社区 版权所有 京ICP备19059560号-4