码迷,mamicode.com
首页 > 其他好文 > 详细

正则表达式,不匹配多个长度不等字符串

时间:2018-06-14 21:05:22      阅读:257      评论:0      收藏:0      [点我收藏+]

标签:span   哈哈哈   pre   文章   说明   相对   表达式   而且   同事   

正则表达式,不包含多个长度不等字符串。

因为多数对于零宽断言检测的讲解中并没有对多个不等长字串做过说明,因此这篇文章在此举例。

 

由于是长度不相等,所以不能用中括号或的方式,而且不进行消费,所以只能是断言检测。

由于是不匹配(不包含)因此是负向,再由于是在所要匹配的字符串之前的检查,因此是后行(相对于正则消费字符串的方向)

因此要使用“零宽负向后行断言检测”。

 

工作中同事遇到问题,如下语句

没色差
没有色差
无色差
色差,有色差
色差太大,别的地方穿了才知道了
哈哈哈色差
色差

目标:匹配色差,但是不匹配"没色差"、“没有色差”、“无色差”

可以使用——零宽负向后行断言

但是,如果多个断言条件在里面,应该长度一直,因为他们是同时消费字串的,由于没、没有、无长度不一致,因此增加任意字符".",使其一致。

(?<!(没有|.没|.无))色差

虽然断言匹配不占用位置,但是后行检查时会向前检查两个字符,但是如果是行首,则不会检查。

正则表达式,不匹配多个长度不等字符串

标签:span   哈哈哈   pre   文章   说明   相对   表达式   而且   同事   

原文地址:https://www.cnblogs.com/snailpen/p/9184405.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!