php 正则 不包含某字符串的正则表达式

小阿雪994

小阿雪994

2016-02-19 09:50

清醒时做事,糊涂时读书,大怒时睡觉,无聊时关注图老师为大家准备的精彩内容。下面为大家推荐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. 但是用正则呢,就只有这样了

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/webkaifa/)

preg_match("/^((?!abc).)*$/is", $str);

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/webkaifa/)

完整代码示例

代码如下:

$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的一个字符串

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

展开更多 50%)
分享

猜你喜欢

php 正则 不包含某字符串的正则表达式

Web开发
php 正则 不包含某字符串的正则表达式

用正则表达式表示不包含2950的字符串

Web开发
用正则表达式表示不包含2950的字符串

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

用PHP正则表达式清除字符串的空白

PHP
用PHP正则表达式清除字符串的空白

EditPlus 正则表达式替换字符串详解

Web开发
EditPlus 正则表达式替换字符串详解

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

asp常用的正则表达式实现字符串的替换

Web开发
asp常用的正则表达式实现字符串的替换

C#中利用正则表达式实现字符串搜索

编程语言 网络编程
C#中利用正则表达式实现字符串搜索

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

正解SQLSEVER 2005 sql排序(按大小排序)

正解SQLSEVER 2005 sql排序(按大小排序)

Mac截图功能汇总

Mac截图功能汇总
下拉加载更多内容 ↓