带有正则表达式和循环的Java Matcher类

时间:2013-01-08 08:08:19

标签: java java-ee pattern-matching

    String sCurrentLine;    
    br = new BufferedReader(new FileReader(path));

 while ((sCurrentLine = br.readLine()) != null) {

    Pattern pattern  = Pattern.compile(".*?unregistKey\\(tvKey\\.(.*?)\\);");
    Matcher m= pattern.matcher(sCurrentLine);
            if(m.matches()) {
                String abc = m.group(1) ;
                System.out.println ("aaaaaaaaaaaaaa" + abc.toString());
             }                  
 }

为什么这段代码循环超过1次。 我检查了这个代码的调用,但它只出现了一次。

o / p是这样的N次:

aaaaaaaaaaaaaaKEY_1
aaaaaaaaaaaaaaKEY_2
aaaaaaaaaaaaaaKEY_3
aaaaaaaaaaaaaaKEY_CH_UP
aaaaaaaaaaaaaaKEY_PANEL_CH_UP
aaaaaaaaaaaaaaKEY_CH_DOWN
aaaaaaaaaaaaaaKEY_1
aaaaaaaaaaaaaaKEY_2
aaaaaaaaaaaaaaKEY_3
aaaaaaaaaaaaaaKEY_CH_UP
aaaaaaaaaaaaaaKEY_PANEL_CH_UP
aaaaaaaaaaaaaaKEY_CH_DOWN

1 个答案:

答案 0 :(得分:0)

只有当输入文件多次包含相同的模式时才会看到此输出(即有几行包含KEY_1等)。