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

上代码:

     @Test
public void test1() {
Pattern pattern = Pattern.compile("页面下载失败\\.url:\\[http://[a-z0-9]+\\.(.+)/.+\\]\\.当前时间戳:\\[([0-9]+)\\]");
Matcher matcher = pattern.matcher("页面下载失败.url:[http://item.jd.com/15626278.html].当前时间戳:[1471415298943]");
if(matcher.find()){
String top_domain = matcher.group(1);
String curr_time = matcher.group(2);
System.out.println(top_domain+"--"+"--"+curr_time);//jd.com----1471415298943
}
} @Test
public void test2(){
String url = "https://item.jd.com/698763154.html";
Pattern pattern = Pattern.compile("https://item.jd.com/([0-9]+).html");
Matcher matcher = pattern.matcher(url);
if(matcher.find()){
System.out.println(matcher.group(1));//
System.out.println(matcher.group(0));//https://item.jd.com/698763154.html
}
} @Test
public void test3(){
String str = "Hello,World! in Java.";
Pattern pattern = Pattern.compile("W(or)(ld!)");
Matcher matcher = pattern.matcher(str);
while(matcher.find()){
System.out.println("Group 0:"+matcher.group(0));//得到第0组——整个匹配
System.out.println("Group 1:"+matcher.group(1));//得到第一组匹配——与(or)匹配的
System.out.println("Group 2:"+matcher.group(2));//得到第二组匹配——与(ld!)匹配的,组也就是子表达式
System.out.println("Start 0:"+matcher.start(0)+" End 0:"+matcher.end(0));//总匹配的索引
System.out.println("Start 1:"+matcher.start(1)+" End 1:"+matcher.end(1));//第一组匹配的索引
System.out.println("Start 2:"+matcher.start(2)+" End 2:"+matcher.end(2));//第二组匹配的索引
System.out.println(str.substring(matcher.start(0),matcher.end(1)));//从总匹配开始索引到第1组匹配的结束索引之间子串——Wor
}
}

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

正则表达式matcher.group用法的更多相关文章

  1. 正则表达式matcher.group()用法

    本帖转自http://winter8.iteye.com/blog/1463244 group是针对()来说的,group(0)就是指的整个串,group(1) 指的是第一个括号里的东西,group( ...

  2. 优酷电视剧爬虫代码实现一:下载解析视频网站页面(4)补充: Java正则表达式Matcher.group(int group)相关类解析

    在Java正则表达式的相关类Matcher中,有如下几个方法: - int groupCount() - String group(int group) - int start(int group)  ...

  3. 初识正则表达式matcher.group

    matcher.group中group是匹配()的,group(0)指的是整个串,group(1) 指的是第一个括号里的内容,group(2)指的第二个括号里的内容,以此类推. 例如: str = & ...

  4. Java正则表达式--Matcher.group函数的用法

    原来,group是针对()来说的,group(0)就是指的整个串,group(1) 指的是第一个括号里的东西,group(2)指的第二个括号里的东西. 最近学习正则表达式,发现Java中的一些术语与其 ...

  5. 【正则表达式】使用正则表达式的group,查找出String中的参数值

    需求 指标基本格式: clm.{type}.{hostId}.$metricItem 示例1: // 待匹配表达式:<hostId: 为36位的UUID> summarize(clm.pm ...

  6. JAVA正则表达式matcher.find()和 matcher.matches()的区别

    1.find()方法是部分匹配,是查找输入串中与模式匹配的子串,如果该匹配的串有组还可以使用group()函数.matches()是全部匹配,是将整个输入串与模式匹配,如果要验证一个输入的数据是否为数 ...

  7. Matcher.group

    Exception in thread "main" java.lang.IllegalStateException: No match found at java.util.re ...

  8. oracle正则表达式regexp_like的用法详解

    oracle正则表达式regexp_like的用法详解 /*ORACLE中的支持正则表达式的函数主要有下面四个:1,REGEXP_LIKE :与LIKE的功能相似2,REGEXP_INSTR :与IN ...

  9. Solr中Facet用法和Group用法

    Group分组划分结果,返回的是分组结果: Facet分组统计,侧重统计,返回的是分组后的数量: 一.Group用法: //组查询基础配置params.set(GroupParams.GROUP, & ...

随机推荐

  1. Windows server 2012 R2 解决“无法完成域加入,原因是试图加入的域的SID与本计算机的SID相同

    Windows server 2012 R2 解决“无法完成域加入,原因是试图加入的域的SID与本计算机的SID相同.”使用克隆的系统时,加域是出现如下问题.“无法完成域加入,原因是试图加入的域的SI ...

  2. m_sequencer、p_sequencer

    https://blog.csdn.net/zhajio/article/details/79608323 p - parent sequencer - 要处理的实际sequencer类型的句柄,这个 ...

  3. 动态添加 SqlParameter 参数

    List<SqlParameter> paras = new List<SqlParameter>(); paras.Add(new SqlParameter("@m ...

  4. 文件上传的UI自动化

    from pywinauto.application import Application import win32gui handle = win32gui.FindWindow("#32 ...

  5. 这里有一篇简单易懂的webSocket 快到碗里来~

    这篇文章是我在学习的时候看到的  刚开始还不是很理解  后来自己百度 又问了一些人  回过头在看这篇文章 真的挺好的 但是原创已经不知道是谁了  转载哦~~~ -------------------- ...

  6. springboot开发流程

    public class User { private int id; private String username; private String password; private int ag ...

  7. E: Sub-process /usr/bin/dpkg returned an error code

    E: Sub-process /usr/bin/dpkg returned an error code (1)错误解决 在用apt-get安装软件时出现了类似于install-info: No dir ...

  8. C# 创建Dll文件供程序调用方法

    C# 创建Dll文件供程序调用方法 使用C#创建动态Dll文件方法: 1.  在VS2017环境下,新建-项目-选择类库类型: 2. 新创建一个.cs文件(如test.cs),编写代码如下: usin ...

  9. Python select模块学习

    select 是常用的异步socket 处理方法 一般用法: # iwtd,owtd,ewtd 分别为需要异步处理的读socket队列, 写socket队列(一般不用), 和错误socket队列, 返 ...

  10. selenium之生成html测试报告--testng.xsl

    自制版制作步骤: 1.首先下载一个文件名为testng.xslt-1.1.zip testng.xslt-1.1我在印象笔记里面备份了一份 打开testng.xslt中lib文件夹,找到saxon-8 ...