困惑于捕获群体的主题?

时间:2013-08-01 09:35:07

标签: java regex

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegexMatches
{
    public static void main( String args[] ){

      // String to be scanned to find the pattern.
      String line = "This order was places for QT3000! OK?";
      String pattern = "(.*)(\\d+)(.*)";

      // Create a Pattern object
      Pattern r = Pattern.compile(pattern);

      // Now create matcher object.
      Matcher m = r.matcher(line);
      if (m.find( )) {
         System.out.println("Found value: " + m.group(0) );
         System.out.println("Found value: " + m.group(1) );
         System.out.println("Found value: " + m.group(2) );
      } else {
         System.out.println("NO MATCH");
      }
   }
}

我想知道Pattern和Matcher对象是如何工作的?

我提到了一些例子但我无法想出来。

2 个答案:

答案 0 :(得分:1)

你的小组从index = 1开始.Zero是整个匹配的索引。

所以,第一个(.*)位于m.group(1)(\\\d+)位于m.group(2), 第二个(.*)位于m.group(3)

答案 1 :(得分:0)

http://www.regular-expressions.info/tutorial.html包含了您需要了解的有关正则表达式的所有内容