正则表达式matcher.group用法

简介:

group是针对括号()来说的,group(0)就是指的整个串,group(1) 指的是第一个括号里的东西,group(2)指的第二个括号里的东西。

上代码:

复制代码
 1     @Test
 2     public void test1() {
 3         Pattern pattern = Pattern.compile("页面下载失败\\.url:\\[http://[a-z0-9]+\\.(.+)/.+\\]\\.当前时间戳:\\[([0-9]+)\\]");
 4         Matcher matcher = pattern.matcher("页面下载失败.url:[http://item.jd.com/15626278.html].当前时间戳:[1471415298943]");
 5         if(matcher.find()){
 6             String top_domain = matcher.group(1);
 7             String curr_time = matcher.group(2);
 8             System.out.println(top_domain+"--"+"--"+curr_time);//jd.com----1471415298943
 9         }
10     }
11     
12     @Test
13     public void test2(){
14         String url = "https://item.jd.com/698763154.html";
15         Pattern pattern = Pattern.compile("https://item.jd.com/([0-9]+).html");
16         Matcher matcher = pattern.matcher(url);
17         if(matcher.find()){
18             System.out.println(matcher.group(1));//698763154
19             System.out.println(matcher.group(0));//https://item.jd.com/698763154.html
20         }
21     }
22     
23     @Test
24     public void test3(){
25         String str = "Hello,World! in Java.";
26         Pattern pattern = Pattern.compile("W(or)(ld!)");
27         Matcher matcher = pattern.matcher(str);
28         while(matcher.find()){
29              System.out.println("Group 0:"+matcher.group(0));//得到第0组——整个匹配
30              System.out.println("Group 1:"+matcher.group(1));//得到第一组匹配——与(or)匹配的
31              System.out.println("Group 2:"+matcher.group(2));//得到第二组匹配——与(ld!)匹配的,组也就是子表达式
32              System.out.println("Start 0:"+matcher.start(0)+" End 0:"+matcher.end(0));//总匹配的索引
33              System.out.println("Start 1:"+matcher.start(1)+" End 1:"+matcher.end(1));//第一组匹配的索引
34              System.out.println("Start 2:"+matcher.start(2)+" End 2:"+matcher.end(2));//第二组匹配的索引
35              System.out.println(str.substring(matcher.start(0),matcher.end(1)));//从总匹配开始索引到第1组匹配的结束索引之间子串——Wor
36         }        
37     }
复制代码

 总结:其实group(),start(),end()所带的参数i就是正则表达式中的子表达式索引(第几个子表达式)。

 


本文转自SummerChill博客园博客,原文链接:http://www.cnblogs.com/DreamDrive/p/7594259.html,如需转载请自行联系原作者

相关文章
|
C++ Python
137 python高级 - 正则表达式(re模块的高级用法)
137 python高级 - 正则表达式(re模块的高级用法)
204 0
正则表达式高级用法
正则表达式是强大的文本匹配工具,常用于搜索、匹配和验证字符串。高级用法包括:捕获组(区分需要提取的内容)、非捕获组(减少开销)、零宽断言(定位匹配位置)、反向引用(匹配相同内容)、嵌入代码(实现复杂逻辑)、贪婪与非贪婪匹配(控制匹配范围)和递归匹配(处理嵌套结构)。了解这些高级技巧能提升字符串操作效率。示例展示了验证Email、电话号码、提取URL和清理多余空格的正则表达式应用。
|
机器学习/深度学习 Python
请解释Python中的正则表达式是什么?并举例说明其用法。
【2月更文挑战第26天】【2月更文挑战第86篇】请解释Python中的正则表达式是什么?并举例说明其用法。
178 2
|
JavaScript 前端开发 物联网
正则表达式的用法(判断是否为手机号格式)
正则表达式的用法(判断是否为手机号格式)
1964 1
|
Java 计算机视觉
【Java 正则表达式】简单用法,注意点,我学不会正则
【Java 正则表达式】简单用法,注意点,我学不会正则
169 0
正则表达式的用法
正则表达式的用法
185 1
|
运维 Java 应用服务中间件
【Nginx用法】nginx location正则表达式写法,详解Nginx location 匹配规则(很详细哦)
【Nginx用法】nginx location正则表达式写法,详解Nginx location 匹配规则(很详细哦)
734 0
|
BI Linux
正则表达式的高级用法——正|反向预查
正则表达式的高级用法——正|反向预查
295 1
正则表达式的高级用法——正|反向预查
|
Python
python正则表达式的常用用法
python正则表达式的常用用法
187 0
详解Python正则表达式中group与groups的用法
在Python中,正则表达式的group和groups方法是非常有用的函数,用于处理匹配结果的分组信息。 group方法是re.MatchObject类中的一个函数,用于返回匹配对象的整个匹配结果或特定的分组匹配结果。而groups方法同样是re.MatchObject类中的函数,它返回的是所有分组匹配结果组成的元组。在本文中,我们将详细讲解group和groups的用法和使用场景。