2013-08-01 49 views
0
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對象是如何工作的?困惑於捕捉羣體的話題?

我嘗試了幾個例子,但我不能拿出那個。

+0

什麼呢格局幾乎一切做什麼,匹配器是做什麼的。如何尋找和小組工作。 – 09Q71AO534

+1

這些組從** 1 **開始編號,'m.group()== m.group(0)'是所有的匹配項。 '.find()'用於(重複)搜索,'.matches()'用於整個字符串的單個匹配。 –

+0

組(\\ d +)做什麼?它會尋找哪種模式.. – 09Q71AO534

回答

1

您的羣組從索引= 1開始。零是整個比賽的索引。

所以,第一個(.*)m.group(1)(\\\d+)m.group(2), 和第二(.*)m.group(3)