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

空字符串断言

时间:2015-06-10 01:00:30      阅读:148      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!