Java регулярное выражение для проверки специальных символов - PullRequest
4 голосов
/ 19 октября 2011

Это похоже на хорошо известное название, но я действительно сталкиваюсь с проблемой в этом.

Вот что у меня есть и что я сделал до сих пор.

Я подтвердилво входной строке эти символы не допускаются:

&% $ ## @! ~

Так что я закодировал это так:

 String REGEX = "^[&%$##@!~]";
 String username= "jhgjhgjh.#";
 Pattern pattern = Pattern.compile(REGEX);
 Matcher matcher = pattern.matcher(username);
 if (matcher.matches()) {
     System.out.println("matched");
 }

Ответы [ 3 ]

5 голосов
/ 19 октября 2011

Измените свою первую строку кода следующим образом

String REGEX = "[^&%$#@!~]*";

И все должно работать нормально. ^ вне класса символов обозначает начало строки. ^ внутри класса символов [] означает отрицание символов внутри класса символов. И, если вы не хотите совпадать с пустыми именами пользователей, используйте это регулярное выражение

String REGEX = "[^&%$#@!~]+";

2 голосов
/ 19 октября 2011

Для сопоставления с допустимым вводом:

String REGEX = "[^&%$#@!~]*";

Для сопоставления с неверным вводом:

String REGEX = ".*[&%$#@!~]+.*";
2 голосов
/ 19 октября 2011

Я думаю, вы хотите это:

[^&%$##@!~]*
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...