200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > php 正则 不包含某字符串的正则表达式

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

时间:2019-01-03 02:06:43

相关推荐

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

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。