我试图通过Java中的正则表达式过滤器,只允许特定的词,即:排除在Java正则表达式正斜杠话
Pattern p = Pattern.compile("^[a-zA-Z0-9\\s\\.-_]{1," + s.length() + "}$");
但我发现它允许通过,因为斜杠ISN140公里每小时没有处理。理想情况下,这个词不应该被允许。
任何人都可以提出修复我当前的版本?
我是新来的正则表达式,并没有特别关注它。
的正则表达式是在utils的类方法如下:
public static boolean checkStringAlphaNumericChars(String s) {
s = s.trim();
if ((s == null) || (s.equals(""))) {
return false;
}
Pattern p = Pattern.compile("^[a-zA-Z0-9\\s\\.-_]{1," + s.length() + "}$");
// Pattern p = Pattern.compile("^[a-zA-Z0-9_\\s]{1," + s.length() + "}");
Matcher m = p.matcher(s);
if (m.matches()) {
return true;
}
else {
return false;
}
}
我想允许使用下划线,空间,时间减字符串。并确保接受字母数字如123.45或-500.00的字符串被接受,但其中5,000.00不被接受。
真的没有必要为此:'{1, “+ s.length()+”}' – NullUserException
那么,什么可能取代它,以保证字符串的每个字符正确解析? –
你在逃避什么?你使用'\ w'不是什么?你在指定什么?{1,'?你为什么使用从点到下划线**的所有代码点的范围来指定那些* 49 *代码点?你为什么使用代码数*单位*来指定代码*点*?这些数字不匹配时你会做什么? &C&C&C&C&C&死!你想用简单的英语来做什么,因为我们永远不会从你的困境中想出来? – tchrist