正则表达式:如何打印匹配组的名称

时间:2016-07-04 13:35:16

标签: java regex

我有一个java代码来检查输入字符串是否与正则表达式匹配。

     String regexpr="(?<day>\d{1,2})\/(?<month>\d{1,2})\/(?<year>\d{4})";
     String test="04/07/2016";
     p = Pattern.compile (regexpr);
     Matcher m = p.matcher (test);
         while(m.find ())
                 {
                      System.out.println("Matched String"+ m.group());
                      System.out.println("Group1:"+ m.start(1) + "-" + m.end(1) + "\t " + group(1));
                      System.out.println("Group2:"+ m.start(2) + "-" + m.end(2) + "\t " + group(2));
                      System.out.println("Group3:"+ m.start(3) + "-" + m.end(3) + "\t " + group(3));
                 }

它将输出显示为

     Matched String   04/07/2016
     Group:1    0-2   04
     Group:2   3-5    07
     Group:3   6-10   2016

除此之外,我还要打印匹配的组名,即

     Group1:  day    0-2      04
     Group2:  month  3-5      07
     Group3:  year   6-10     2016

在java中的regex中有没有任何方法可以做到这一点?

0 个答案:

没有答案