我写了这个正则表达式:
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
不是。
答案 0 :(得分:3)
你没有确切地说出你想要做什么,但是如果我猜的话,就像:
((\d+|\d+-\d+),\s+)*(\d+|\d+-\d+)$
替换为最后一位只允许使用逗号分隔的数字和数字列表