我写了这个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,但我不希望它匹配。如何修改regex以使其返回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则不是。
发布于 2012-07-18 01:49:57
你没有说出你想做什么,但如果我猜的话,大概是这样的:
((\d+|\d+-\d+),\s+)*(\d+|\d+-\d+)$替换最后一位只允许逗号分隔的数字和数字列表。
https://stackoverflow.com/questions/11533159
复制相似问题