php 正则 不包含某字符串的正则表达式
网络编程
常见函数 strstr($str, “abc”);
正则匹配 preg_match(”/(abc)?/is”, $str);
但是要匹配一个字符串中,不包含某字符串,用正则就比较麻烦了
如果不用正则 !strstr($str, “abc”); 就可以解决问题了
但是用正则呢,就只有这样了,”/^((?!abc).)*$/is”
//------------------------------------------------
//------------------------------------------------
结果为: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”
正则匹配 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”
用正则表达式表示不包含2950的字符串
使用Excel中的VBA测试如下(匹配式为:^((?!2950).)*$):SubRegs()DimRegExAsObjectSetRegEx=CreateObject("VBScript.regexp")Dims,mats="399295078"RegEx.Pattern="^((?!2950).)*$"RegEx.Global=TrueM
用正则删除不包含某个字符串的行的代码
先说一下这个可疑的ip,58.63.144.170,据说是一个弱智的蜘蛛,上帝保佑它下地狱。看过apache日志的朋友应该知道,apache的访问日志的每一行是以访问者的ip
用正则表达式来判断素数的代码
importredefis_prime(num):returnnotre.match(r"^1?$|^(11+?)1+$",'1'*num)这个正则表达式实际上表示所有合数长度的"1"串(还包括特例"1")。(11+?)表示所有大于等于2的整
标签:字符串,正则,不包含,正则表达式,字符