还在苦苦敲代码开发APP?你out啦! 试试积木搭建APP吧~

正则表达式匹配不包含某些字符串的写法

来源:清泛编译     2016-07-01 09:25:29    人气:     我有话说( 0 人参与)

经常我们会遇到想找出不包含某个字符串的文本,程序员最容易想到的是在正则表达式里使用,^(hede)来过滤hede字串,但这种写法是错误的。我...

经常我们会遇到想找出不包含某个字符串的文本,程序员最容易想到的是在正则表达式里使用,^(hede)来过滤”hede”字串,但这种写法是错误的。我们可以这样写:[^hede],但这样的正则表达式完全是另外一个意思,它的意思是字符串里不能包含‘h',‘e',‘d'三个但字符。那什么样的正则表达式能过滤出不包含完整“hello”字串的信息呢?

事实上,说正则表达式里不支持逆向匹配并不是百分之百的正确。就像这个问题,我们就可以使用否定式查找来模拟出逆向匹配,从而解决我们的问题:

^((?!hede).)*$

上面这个表达式就能过滤出不包含‘hede'字串的信息。我上面也说了,这种写法并不是正则表达式“擅长”的用法,但它是可以这样用的。

那么,如果想不包含多个字符串,如不包含 hede 和 waqa 两个字符串呢?' | '连接两个字符串即可:

^((?!hede|waqa).)*$

(注:| 是或者逻辑,但这里是反向不包含,因此变成了 且逻辑)

具体原理解释请参考:http://www.jb51.net/article/52491.htm。

正则表达式 不包含 字符串

注:本文为本站或本站会员原创优质内容,版权属于原作者及清泛网所有,
欢迎转载,转载时须注明版权并添加来源链接,谢谢合作! (编辑:admin)
分享到: