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);
该方法有效,本人使用方法如下:
(?:(?!<\/div>).|\n)*? //匹配不含</div>的一个字符串
但最终使用中结果是发现,该方法效率极其低下,在处理非常短文字(要匹配该正则式的相同部分的有十几个字,或者最多几十个)时间可以考虑使用,但当用于大篇幅文章解析或多处需要改种匹配时间应不使用,考虑用其他方法替代(如:先解析出要匹配该段正则式的文字,然后验证其中是否存在某段文字),正则表达式对于匹配不含特定字符串的文字段时并不是非常有效的方法.
查看更多与“字符串正则PHP”有关的文章
- 01-17PHP中基本符号及使用方法
- 01-14PHP count_chars()函数讲解
- 01-17PHP hex2bin()函数用法讲解
- 01-16PHP implode()函数用法讲解
- 01-15PHP lcfirst()函数定义与用法
- 01-15PHP join()函数用法与实例讲解
- 01-14PHP中quotemeta()函数的用法讲解
- 01-18PHP中number_format()函数的用法讲解
- 01-18PHP中str_split()函数的用法讲解
- 01-17一个正则的写法 php
- 01-16php 正则表达式学习笔记
- 01-17php下常用表单验证的正则表达式
- 01-15PHP 正则表达式分析RSS
- 01-16PHP 正则表达式验证中文的问题
- 01-18php中utf-8编码下用正则表达式如何匹配汉字
- 01-16PHP正则匹配图片并给图片加链接详解
- 01-17PHP 正则表达式的几则使用技巧
- 01-18PHP 正则表达式常用函数使用小结
- 01-18PHP 正则 email语句详解
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
推荐阅读
最近更新
- 01-18php 正则 不包含某字符串的正则表达式
- 01-18nmap扫描服务器端口(远程桌面端口)
- 01-18linux用户组以及权限总结
- 01-18关于URL最大长度限制的相关资料查证
- 01-18技术牛人研习获取任意Html元素与body之间的偏移距离 offsetTop、offsetLeft (For:IE5+ FF1 )[
- 01-18小编教您JS中常用的输出方式(五种)
- 01-18笔者普及有趣的script标签用getAttribute方法来自脚本吧
- 01-18小编解惑Javascript for in的缺陷总结
- 01-18忘记wordpress的登录密码的解决方法(比较简单)
- 01-18CentOS 7下MySQL服务启动失败的快速解决方法
