日期:2014-05-20  浏览次数:20760 次

一段正则表示式,各种看不懂,求大神。。
最近项目中看到一段正则,完全看懵了,查了各种资料也没看懂。。
类似这个:^(?![^A-Z]+$)(?![^0-9]+$)(?![^a-z]+$).{8,15}$ (必须有大小写字母和数字),这个是csdn一个帖子上lxcnn
回答的。
按我的理解[^A-Z]+$匹配非A-Z的一个到多个结尾,(?![^A-Z]+$)表示匹配A-Z的一个到多个结尾? 组合到一起完全看不懂了
哪位大神解释一下 感谢

------解决方案--------------------
?!:零宽度负向预查,不捕获匹配结果。
(?![^A-Z]+$):无大写字母到结尾则不予匹配。
(?![^0-9]+$):无大写数字到结尾则不予匹配。
(?![^a-z]+$):无小写数字到结尾则不予匹配。
剩下的你懂得...

------解决方案--------------------
(?=X)、(?!X)、(?<=X)、(?<!X) 这四种称为环视(lookaround)语法

在这个帖子 2 楼
http://topic.csdn.net/u/20080627/14/8a91b33a-f35c-4303-85b5-e0a8da462202.html

这个帖子 3 楼
http://topic.csdn.net/u/20080716/22/80cdd418-a0e9-4e7e-8435-df6d4bc11c4a.html

我都有解释过,有兴趣的话,可以去看看 :)