Я пытаюсь разрешить только определенные слова через фильтр регулярных выражений в Java, например:
Pattern p = Pattern.compile("^[a-zA-Z0-9\\s\\.-_]{1," + s.length() + "}$");
Но я считаю, что это разрешает проходить через 140 км / ч, поскольку косая черта не обрабатывается.В идеале, это слово не должно быть разрешено.
Может кто-нибудь предложить исправление к моей текущей версии?
Я новичок в regexp и пока не особо следую ему.
Регулярное выражение находится в методе класса 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 - нет.