Java模式匹配器COMMA

时间:2013-02-04 04:21:28

标签: java regex comma matcher

我正在尝试对字符串使用模式检查,并且由于某种原因它说的是不匹配的字符串,请执行..

代码:

private static final Pattern VALID_TOKEN = Pattern.compile("^[a-zA-Z0-9\\{\\}\\[\\].+-/=><\\\\*]*$");
System.out.println(VALID_TOKEN.matcher(token).matches());

示例:

"123" = true
"1,3" = true // Should NOT BE TRUE
"123*123" = true
"123*^123" = false

以上所有示例都是正确的,除了“1,3”外,该模式不应包含COMMA。有没有人有任何想法?

1 个答案:

答案 0 :(得分:2)

你需要在

中逃脱破折号
+-/

否则,它被解释为从'+''/'的范围 - 包含'+'',''-'的范围。 '.''/'

private static final Pattern VALID_TOKEN = Pattern.compile("^[a-zA-Z0-9\\{\\}\\[\\].+\\-/=><\\\\*]*$");
//                              Here ------------------------------------------------^^

或者,您可以将短划线移动到字符类的末尾(即将其放在结束]之前)。