^(?=.*[0-9].*)(?=.*[a-zA-Z].*).{8,}$
这个正则表达式是说输入的字符串长度必须大于等于8,并且必须包含数字和字母
零宽断言
接下来的四个用于查找在某些内容(但并不包括这些内容)之前或之后的东西,也就是说它们像\b
,^
,$
那样用于指定一个位置,这个位置应该满足一定的条件(即断言),因此它们也被称为零宽断言
。最好还是拿例子来说明吧:
断言用来声明一个应该为真的事实。正则表达式中只有当断言为真时才会继续进行匹配。
(?=exp)
也叫零宽度正预测先行断言
,它断言自身出现的位置的后面能匹配表达式exp
。比如\b\w+(?=ing\b)
,匹配以ing结尾的单词的前面部分(除了ing以外的部分)
,如查找I'm singing while you're dancing.
时,它会匹配sing
和danc
。
\b\w+(?=ing\b) 跟
\b\w+ing\b 匹配的原来文本中的内容是一样的, 但取匹配到的结果时
\b\w+(?=ing\b) 只取前面部分"
\b\w+"
,所以叫零宽断言. (?=exp)这一块没了,取出的长度为0
(?=exp)
匹配的是exp前面的那个位置,特别要注意的是它匹配的只是一个位置,而不是任何字符。比如,\b\w+(?=ing\b)在查找I'm singing while you're dancing的时候会匹配sing和danc,因为其中的
(?=ing)匹配了singing的sing和ing之间的那个位置,还有dancing的danc和ing之间的位置,即ing之前的那个位置。
(?<=exp)
也叫零宽度正回顾后发断言
,它断言自身出现的位置的前面能匹配表达式exp
。比如(?<=\bre)\w+\b
会匹配以re开头的单词的后半部分(除了re以外的部分)
,例如在查找reading a book
时,它匹配ading
。
(?<=exp) 跟
(?=exp) 差不多,它是在前面
假如你想要给一个很长的数字中每三位间加一个逗号(当然是从右边加起了),你可以这样查找需要在前面和里面添加逗号的部分:((?<=\d)\d{3})+\b
,用它对1234567890
进行查找时结果是234567890
。
用的时候是
(?<=exp)放前面
(?=exp)放后面
下面这个例子同时使用了这两种断言:(?<=\s)\d+(?=\s)
匹配以空白符间隔的数字(再次强调,不包括这些空白符)
。
java 正则 <=断言的限制, 需要有最大值,不能用+ 和 * . (?<=abc)rems\w{1,65535}?可以, (?<=abc)rems\w*? 不可以
perl中 <=断言中不能用数量词 (*,+之类的)
http://deerchao.net/tutorials/regex/regex.htm#negativelookaround
分享到:
相关推荐
新版正则表达式。包括零宽断言,正则替换的150种表达方式
正则表达式 零宽断言,,,,,,,,,,,,,,,,,,,,,
正则表达式零宽断言: 零宽断言是正则表达式中的难点,所以本章节重点从匹配原理方面进行一下分析。零宽断言还有其他的名称,例如”环视”或者”预搜索”等等,不过这些都不是我们关注的重点。 一.基本概念: 零宽断言...
本文实例讲述了正则表达式之零宽断言。分享给大家供大家参考,具体如下: 前言 之前我曾写了一篇关于正则表达式的文章(//www.jb51.net/article/111359.htm) 在该文章中详细介绍了正则,但是关于零宽断言介绍却是很少...
1. 本文目标 2. 如何使用本教程 3. 正则表达式到底是...15. 负向零宽断言 16. 注释 17. 贪婪与懒惰 18. 处理选项 19. 平衡组/递归匹配 20. 还有些什么东西没提到 21. 联系作者 22. 网上的资源及本文参考文献
目录 一、 本文目标 3 ...十五、 负向零宽断言 15 十六、 注释 16 十七、 贪婪与懒惰 16 十八、 处理选项 17 十九、 平衡组/递归匹配 18 二十、 还有些什么东西没提到 20 二十一、 网上的资源及本文参考文献 21
15. 负向零宽断言 16. 注释 17. 贪婪与懒惰 18. 处理选项 19. 平衡组/递归匹配 20. 还有些什么东西没提到 21. 联系作者 22. 最后,来点广告…… 23. 网上的资源及本文参考文献 24. 更新纪录
001_正则表达式初体验.wmv ...020_正则表达式非捕获分组之零宽断言.wmv 021_正则表达式非捕获分组之零宽断言2.wmv 022_正则表达式非捕获分组之负向零宽断言.wmv 023_正则表达式之贪婪与懒惰.wmv 024_正则表达式实例应用
正则表达式基础入门教程 ...15. 负向零宽断言 16. 注释 17. 贪婪与懒惰 18. 处理选项 19. 平衡组/递归匹配 20. 还有些什么东西没提到 21. 一些我认为你可能已经知道的术语的参考 网上的资源及本文参考文献
学习正则表达式快速入门的法宝。...15、负向零宽断言 16、注释 17、贪婪与懒惰 18、处理选项 19、平衡组/递归匹配 20、还有些什么东西没提到 21、联系作者 22、网上的资源及本文参考文献 23、更新纪录
15. 负向零宽断言 16. 注释 17. 贪婪与懒惰 18. 处理选项 19. 平衡组/递归匹配 20. 还有些什么东西没提到 21. 联系作者 22. 一些我认为你可能已经知道的术语的参考 23. 网上的资源及本文参考文献 24. 更新...
30分钟内让你明白正则表达式是什么,并对它有一些基本的了解,让你可以在自己的程序或网页里使用它。 本文目标 如何使用本教程 正则表达式到底是什么...负向零宽断言 注释 贪婪与懒惰 处理选项 平衡组/递归匹配
负向零宽断言 注释 贪婪与懒惰 处理选项 平衡组/递归匹配 还有些什么东西没提到 联系作者 网上的资源及本文参考文献 本文目标 30分钟内让你明白正则表达式是什么,并对它有一些基本的了解,让你可以在自己的程序或...
本文目标 如何使用本教程 正则表达式到底是什么东西? 入门 测试正则表达式 元字符 字符转义 重复 字符类 分枝条件 ...零宽断言 负向零宽断言 注释 贪婪与懒惰 处理选项 平衡组/递归匹配