java表达式找到多个单词

时间:2016-03-31 14:51:58

标签: java regex

我是一名Java新手,我有一个文本文件,其中包含以下信息:

[123 B, 253 D, 27 A, 164 F, ...]

然后我试图将有用的信息(只是商店编号和样式编号)放入一组并打印出来,设置应该是这样的:

    Set<String> setStoreStyle = new HashSet<String>(); 
    Pattern patternStoreStyle = Pattern.compile("Store (.+?) has cloth style(.+?).");

    FileInputStream fstream = new FileInputStream(MyTextfilePath);
    BufferedReader br = new BufferedReader(new InputStreamReader(fstream));

    for (String line = br.readLine(); line != null; line = br.readLine()){

        Matcher matcherStoreStyle = patternStoreStyle.matcher(line);

        if(matcherStoreStyle.find()){
            String a = matcherStoreStyle.group(1);
            setStoreStyle.add(a);
        }
     }  
     br.close();
     System.out.println(setStoreStyle);

我试过了:

[123, 253, 27, 164, ...]  

但我得到了

gulp.src('handlebars/pagetemplate.hbs')
  .pipe( handlebars(dataSrc1, options) )
  .pipe( handlebars(dataSrc2, options) )   
  .pipe( rename('page.html') )
  .pipe( gulp.dest('outputfolder/') );

有任何想法要解决它吗?

1 个答案:

答案 0 :(得分:1)

您可以访问第一个捕获组,但不能访问第二个捕获组:

String a = matcherStoreStyle.group(1) + " " + matcherStoreStyle.group(2);

另外,正如@WictorStribizew所说,你应该逃避模式中的最后一个.,以便它匹配一个文字句点,而不是任何字符。