正则表达式,用于匹配由空格分隔的数字字符串上的数字

时间:2015-10-07 01:58:27

标签: java regex

我有一个字符串,如:

Scanner input = new Scanner(System.in);

我正在尝试使用regExp获取一个数字的重复次数(在本例中为5),所以我的方法如下:

String s = " 10 5 15 55 5 ";

但这不起作用,它也匹配55。

如果我在数字的两边都使用空格,例如:

long repetitions = s.split(" 5").length -1;

它不起作用,它只计算一个10的实例(我有两个)。

所以我的问题是哪个regExp可以正确计算两个案例?

1 个答案:

答案 0 :(得分:1)

您可以使用与使用word-boundaries的正则表达式'\b5\b'进行模式匹配来查找不属于其他内容的5

String s = " 10 5 15 55 5 ";
Pattern p = Pattern.compile("(\\b5\\b)");
Matcher m = p.matcher(s);
int countMatcher = 0;
while (m.find()) { // find the next match
    m.group();
    countMatcher++; // count it
}
System.out.println("Number of matches: " + countMatcher);

<强>输出

Number of matches: 2

您可以对10等进行同样的操作。