Java正则表达式与句点部分匹配

时间:2012-10-07 04:52:22

标签: java regex find matcher

在Java中我使用Pattern和Matcher在一组字符串中查找“.A(一个数字)”的所有实例来检索数字。

我遇到了问题,因为文件中的一个词是“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 个答案:

答案 0 :(得分: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);
}