11智能在线
新记
Java中 正则表达式中 组 是怎么用的?我看了n遍,没看懂
如题所述
举报该文章
相关建议 推荐于2017-09-21
组其实就是用来提取正则中匹配到的内容。
比如有正则表达式:abc(\d{2,5})efg,这个正则本身的意思很简单,就是字符串abc和efg之间有2到5个数字,所以字符串"abc12efg"、“abc34567efg”都能满足这个正则匹配。这个相信你能理解。
那么正则表达式模式中用小括号包起来的"\d{2,5}"这部分就叫“捕获组”,正则表达式引擎会将这部分匹配到的内容记下来,以便以后取用。java代码中,可以在调用Matcher对象的find方法得到true的返回值的时候(true说明正则表达式模式找到了符合匹配的内容),调用该Matcher对象的group(int groupNo)方法获得指定的组内容。还拿刚才那个例子来说,调用matcher.group(1)就会得到"12"、“34567”这样实际匹配的内容。这里要特别注意一下,组编号是从1开始计算的。0号组实际上就是整个正则表达式匹配到的内容。
再深入一点,上面讲到的所谓组是“捕获组”,正则引擎会记下来匹配内容,但是有时候我们不需要捕获,只是想要限制匹配,就会用到非捕获组。如果你真明白了捕获组,再看非捕获组以及前瞻后顾就明白了。
温馨提示:内容为网友见解,仅供参考
当前网址:
https://11.t2y.org/zz/f778pm2p282qp2848s7.html
其他看法
第1个回答 2014-12-07
什么正则,网上查一下都有。你说的组是不是指范围 a-z?
追答
看了下,就是一个方括号的内容,比如[a-z][0-9]\1那个\1就是[a-z], 知道为什么我为什么理解的这么快吗? 原因是我上英文网站查的,没有一堆乱七八糟的术语。
圆括号,打错
相似回答
大家正在搜
相关问题
java 看这些正则表达式,,后面都带个$ $是什么意思?
java正则表达式关于分组的问题,我能理解group(0)是...
求确认:java的正则表达式不支持平衡组么
问题见下面代码.有关JAVA中的正则表达式中的组的问题.
在Java中正则表达式 下滑线 是什么意思
怎么写正则表达式,来匹配字符串中 重复n次的不确定字符
java中正则表达式如何使用?比如判断一个字符串是否满足某种...
java中正则表达式:"^[\\s&&[^\\n]]*\\n...