0

我写了这个正则表达式:

String regex = "^\\s+something\\s+(not\\s+)?else\\s+([-,\\s\\d]+)$";

这个代码:

String line = "something else 1, 2-3";
Matcher m = Pattern.compile(regex).matcher(line);

m.matches()将返回true,这就是我想要的。

但是,对于以下代码,它也返回true,但我不希望它匹配。如何修改我的正则表达式以使其返回false

String line = "something else 1 2 3";
Matcher m = Pattern.compile(regex).matcher(line);

谢谢!

更新:我没有做任何范围检查。我只想看看列表中的空格之间是否有逗号。所以1, 3, 5-7是有效的,但1, 2 5-7不是1 2 3

4

1 回答 1

3

您并没有确切地说出您要做什么,但是如果我猜的话,例如:

((\d+|\d+-\d+),\s+)*(\d+|\d+-\d+)$

替换最后一位将只允许逗号分隔的数字和数字列表

于 2012-07-18T01:49:57.313 回答