正则表达式满足两个条件:包特定字符含和不包含某字符

求一个正则表达式,满足如下:文字中如果包含“智能终端”,则匹配上,但是“智能终端”前面不能包含“接收”两个字,如下例子(1)110kV鹿瓦线智能终端装置异常:匹配上(2)... 求一个正则表达式,满足如下:
文字中如果包含“智能终端”,则匹配上,但是“智能终端”前面不能包含“接收”两个字,如下例子
(1)110kV鹿瓦线智能终端装置异常:匹配上
(2)110kV鹿瓦线智能终端接收保护装置直跳链路中断:匹配上,“接收”在智能终端后面
(3)110kV鹿瓦线测控装置接收智能终端GOOSE组网链路中断:不能匹配上,因为包含了接收 收起
注意:“接收”和“智能终端”之间可能有其他字,例如
(4)1号主变A套保护接收中压侧智能终端GOOSE链路中断:不能匹配上,因为包含了接收

^.*(?<!接收)智能终端.*$
这个正则表达式能满足上面1、2、3 但是不满足4, 所以求一个可以满足如上几个条件的,谢过
展开
 我来答
紫薇参星
科技发烧友

2017-10-12 · 有一些普通的科技小锦囊
知道大有可为答主
回答量:5983
采纳率:92%
帮助的人:3490万
展开全部

满足上面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>

运行结果
匹配
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式