java正则或的关系,java
官方文件如下:
如何解决写爬虫IP受阻的问题?立即使用。
上图是对公文的介绍。总结一下,有两个知识点:
(学习视频推荐:java视频教程)
1.是否获取匹配并保存匹配值;
2.正向预览和反向预览。
首先说明是否获取匹配并保存匹配值。
1.()表示捕获分组并获取匹配,()保存每个分组中的匹配值;
2、(?)表示非捕获包,匹配获得。不会保存未捕获包的匹配值,可以提高程序执行速度;
3、(?=?=?)表示不捕获数据包,不获取匹配,不保存匹配值。
示例:
//是否获取匹配的测试文本abxoxcd
.(xox).匹配abxoxcd
.(?xox).匹配abxoxcd
.(?=xox).匹配abxo
获取匹配。一般一个字符匹配完之后,这个字符就被消费输出了。没有获得匹配,也没有消耗字符。
//是否保存匹配值测试文本AAABBCaaA E666FF
(A)\\1*匹配AAA,A
(\\w)\\1匹配aaA,BB,aA,666,FF
(?A)(B)\\1*匹配ABB因为非捕获包没有保存匹配值,所以(?A)(B)\\1*匹配ABB的第一个\\1表示(B)此捕获组捕获的值。
“注意:反向引用表示捕获到的值,而不是再次使用正则表达式”
第二,解释一下正向预览和反向预览。
//展望未来:
exp1(?=exp2)在exp2之前找到exp1
//回首往事:
(?=exp2)exp1在exp2之后查找exp1
//负面预览:
exp1(?2)查找exp2后面没有的exp1
//消极的后见之明:
(?2) exp1查找前面不是exp2的exp1。例如:
//向前预览和向后预览
测试文本abxoxcd
.(?=xox)匹配ab
.(?=oxo)配不上。
(?=xox).匹配xo
(?=xox).要匹配cd预览,只需记住:
1、放眼全球定位到非捕获群体;
2.不获取匹配(不消耗字符),不保存匹配值(不能使用反向引用)。
相关文章教程推荐:java快速入门。这就是java正则化的全部内容吗?=、对于一些了解的细节,请关注我们的其他相关文章了解更多!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。