正则表达式满足两个条件:包特定字符含和不包含某字符
求一个正则表达式,满足如下:文字中如果包含“智能终端”,则匹配上,但是“智能终端”前面不能包含“接收”两个字,如下例子(1)110kV鹿瓦线智能终端装置异常:匹配上(2)...
求一个正则表达式,满足如下:
文字中如果包含“智能终端”,则匹配上,但是“智能终端”前面不能包含“接收”两个字,如下例子
(1)110kV鹿瓦线智能终端装置异常:匹配上
(2)110kV鹿瓦线智能终端接收保护装置直跳链路中断:匹配上,“接收”在智能终端后面
(3)110kV鹿瓦线测控装置接收智能终端GOOSE组网链路中断:不能匹配上,因为包含了接收 收起
注意:“接收”和“智能终端”之间可能有其他字,例如
(4)1号主变A套保护接收中压侧智能终端GOOSE链路中断:不能匹配上,因为包含了接收
^.*(?<!接收)智能终端.*$
这个正则表达式能满足上面1、2、3 但是不满足4, 所以求一个可以满足如上几个条件的,谢过 展开
文字中如果包含“智能终端”,则匹配上,但是“智能终端”前面不能包含“接收”两个字,如下例子
(1)110kV鹿瓦线智能终端装置异常:匹配上
(2)110kV鹿瓦线智能终端接收保护装置直跳链路中断:匹配上,“接收”在智能终端后面
(3)110kV鹿瓦线测控装置接收智能终端GOOSE组网链路中断:不能匹配上,因为包含了接收 收起
注意:“接收”和“智能终端”之间可能有其他字,例如
(4)1号主变A套保护接收中压侧智能终端GOOSE链路中断:不能匹配上,因为包含了接收
^.*(?<!接收)智能终端.*$
这个正则表达式能满足上面1、2、3 但是不满足4, 所以求一个可以满足如上几个条件的,谢过 展开
1个回答
展开全部
满足上面4个语句要求的正则表达式 ^((?!接收.*?智能终端).)*$
我给你一个Javascript语言的例子,你看看吧
<script type=text/javascript>
var str = '1号主变A套保护接收中压侧智能终端GOOSE链路中断:';
var regex=/^((?!接收.*?智能终端).)*$/;
if(regex.test(str)==true){
alert("匹配");
}else{
alert("不匹配");
}
</script>
运行结果
不匹配
追问
上面四个满足了,但是
1号主变A套智能终端接收中压侧智能终端GOOSE链路中断
这个应该匹配上,但是你那个匹配不上,这个能提供点帮助不
追答
按照你的要求写的正则表达式 ^((.*?智能终端.*?接收.*?智能终端.*?)|((?!接收.*?智能终端).)*)$
我同样给你一个Javascript语言的例子,你看看吧.
<script type=text/javascript>
var str = '1号主变A套智能终端接收中压侧智能终端GOOSE链路中断';
var regex=/^((.*?智能终端.*?接收.*?智能终端.*?)|((?!接收.*?智能终端).)*)$/;
if(regex.test(str)==true){
alert("匹配");
}else{
alert("不匹配");
}
</script>
运行结果
匹配
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询