我試圖通過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