不包含某项字符串的正则(不包含某项字符串的正则函数)
问个简单的正则(不能包含某字符串),这个该怎么写
不明白楼上的\1?\1?是什么意思,\1是向前引用吗?
如果是的的话那不是只能匹配重复的东西?如:
[00:00:00][00:00:00][00:00:00][00:00:00]
而[00:00:00][11:11:11]就匹配不了了?
如果这个是标准的正则的话那这样:
(\[\d{1,2}:\d{1,2}\.{0,1}\d{1,2}\])+不就可以匹配多个时间了?而且这个也有问题,先是第2个\d{1,2}不对,因为这应该是表示秒种吧,最大只能60,因些这个不对;
还有\.{0,1}也就是\.?为什么可以没有呢没有不就变成[00:0000]了,这个也是对的吗?
我觉得如果是标准正则应该是这样的:
((\[\d{2}:[0-6]\d\.\d{2}\])+.+?)+
前提是这是标准的正则,如果不是,当我没说,如果是有问题找我
正则表达式之匹配不存在特定字符的字符串
作为一名不经常使用正则表达式的程序员,想用最简单的语言来描述否定匹配,不过发现确实不是那么好理解。还是按照自己知道的来描述吧。
这些都是来源于网上,前人已经总结的很好了。前人栽树,后人乘凉。我就乘乘凉好了。O(∩_∩)O哈哈~
本次使用 (?!pattern) 匹配,显而易见它是匹配下一个字符串来判断本次的匹配是否成功。当然这是一个否定匹配。
在文档中匹配出,不包含“hello”的字符串。
其中第1,5,6行包含有“hello”字符串。当然这不是重点,重点是怎么来写这个正则表达式。
当然,结论是:
运行效果:
将包含有“hello”的字符串全部排除掉了。这样就实现了我们想要的效果。
_
简明解释一下,这个语句的意思:
从头开始匹配,否定匹配任意字符到“hello”,然后匹配任意字符到尾部结束。
大功告成,回家睡觉。O(∩_∩)O哈哈~
正则不包含某个字符串怎么写
你的正则有点重复了,\w本来就包含了汉字和数字了了,所以没必要汉字、数字再加上\w,另外,如果前后不限的话,你这个就只能匹配到前后是数字、字母、汉字、-和_,其他的字符就匹配不上了
正确应该是
/^.+\..+$/
当然,如果说限定了特殊字符只能是-和_,那可以改成/^[\w\-\_]+\.[\w\-\_]+$/
用正则表达式怎样匹配?不包含特定字符串的字符串
正则表达式匹配公式为:^((?!XXX).)*$,XXX为字符串。
另外列举一些正则表达式的语法:
[abc]
a或b或c
.
任意单个字符
a?
零个或一个a
[^abc]
任意不是abc的字符
\s
空格
a*
零个或多个a
[a-z]
a-z的任意字符
\S
非空格
a+
一个或多个a
[a-zA-Z]
a-z或A-Z
\d
任意数字
a{n}
正好出现n次a
^
一行开头
\D
任意非数字
a{n,}
至少出现n次a
$
一行末尾
\w
任意字母数字或下划线
a{n,m}
出现n-m次a
(...)
括号用于分组
\W
任意非字母数字或下划线
a*?
零个或多个a(非贪婪)
(a|b)
a或b
\b
单词边界
(a)...\1
引用分组
(?=a)
前面有a
(?!a)
前面没有a
\B
非单词边界
正则表达式中有(?=a)和(?!a)来表示我们是否需要匹配某个东西。
正则表达式不包含某个字符串怎么写
C\s*(?!10\.3|192\.168)([0-9]{1,3}\.){3,}[0-9]{1,3}\/[0-9]{1,3}.*((Vlan[0-9]{4,})|(Vlan20)|(Port-channel))
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);
但是要匹配一个字符串中,不包含某字符串,用正则就比较麻烦了。
如果不用正则如下就可以解决问题