首页 > 其他 > 详细

空字符串断言

时间:2015-06-10 00:58:43      阅读:221      评论:0      收藏:0      [点我收藏+]

最近稍微研究了下正则表达式,在网上看了一篇正则表达式30分钟入门教程.

教程点这里~ 30分钟入门

 

在平衡组中讲到(?!)断言一定匹配不成功...

 

想了半天不明白....我是这么理解(?!)断言的...

a(?!b)能够匹配右边不是b的a,那a(?!)的意思就是匹配右边什么都没有的a.....

然后我输入了qwea发现不能匹配..感觉非常奇怪...纠结了2,3天...后来发现是我理解错了....


正确的理解应该是匹配右边不是空字符串的a...空字符串是到处都存在的,比如"abc"中有4个空字符串,a前面和后面,c前面和后面.所以a(?!)的理解应该是匹配右边不是空字符串的a,因为a的右边一定有空串,所以匹配一定失败..四种断言都有这种特性.


(?!)和(?<!)一定是失败的.

(?!=)和(?=)一定是成功的.


这种用法的意义在于可以根据情况让正则表达式失败..在平衡组里,如果一些字符出现数量不相等的话,可以使用这个技巧强制将匹配失败....语言有点难描述,贴个例子吧...我觉得讲的蛮好的....

https://msdn.microsoft.com/zh-cn/library/bs2twtah(v=vs.110).aspx


技术分享差不多就是这样...

空字符串断言

原文:http://www.cnblogs.com/abcwt112/p/4564862.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!