2012-10-07 51 views
1

在Java中,我使用模式和匹配器在一組字符串中查找所有「.A(一個數字)」實例以檢索數字。Java正則表達式與句點部分匹配

我遇到了問題,因爲文件中的一個單詞是「P.A.M.X.」並且數字返回0.它不會通過文件的其餘部分。我嘗試過使用許多不同的正則表達式,但我無法超越「P.A.M.X.」的出現。而在接下來的 「.A(數字)」

for (int i = 0; i < input.size(); i++) { 

Pattern pattern = Pattern.compile("\\.A\\s\\d+"); 
Matcher matcher = pattern.matcher(input.get(i)); 

while (matcherDocId.find()) 
    { 
      String matchFound = matcher.group().toString(); 
      int numMatch = 0; 
      String[] tokens = matchFound.split(" "); 
      numMatch = Integer.parseInt(tokens[1]); 
      System.out.println("The number is: " + numMatch); 
    } 
} 

回答

1

短採樣爲您提供:

Pattern pattern = Pattern.compile("\\.A\\s(\\d+)"); // grouping number 
Matcher matcher = pattern.matcher(".A 1 .A 2 .A 3 .A 4 *text* .A5"); // full input string 
while (matcher.find()) { 
    int n = Integer.valueOf(matcher.group(1)); // getting captured number - group #1 
    System.out.println(n); 
}