如何修改我的正则表达式,使其不匹配?

时间:2012-07-18 01:40:44

标签: java regex

我写了这个正则表达式:

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-71 2 3不是。

1 个答案:

答案 0 :(得分:3)

你没有确切地说出你想要做什么,但是如果我猜的话,就像:

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

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