Regex:简单除法字符串的模式



我有一个遵循这种模式的字符串:

2/9 (22%)

,其中29可以包含一个或多个数字。我需要解析出这两个整数,所以我想出了这个模式:

String patternString = "([0-9]+)/([0-9]+).*";
Pattern pattern = Pattern.compile(patternString);
Matcher matcher = pattern.matcher(stat);
if (matcher.matches()) {
    int i = Integer.parseInt(matcher.group(0));
    int j = Integer.parseInt(matcher.group(2));
}

但是这会崩溃并产生以下错误:

java.lang.NumberFormatException: Invalid int: "2/9 (22%)"

这意味着它在第0组上匹配整个字符串。

我也试过将/字符放在[/]内部,但结果相同。

我做错了什么?谢谢!

使用组1。第0组将匹配整个字符串

int i = Integer.parseInt(matcher.group(1));

您应该使用group(1)group(2)

group(0)是整个字符串,您实际上在问题

中说明了这一点

最新更新