Почему ([AZ] | [0-9]) [\\. A-zA-Z0-9 _-] {0,} $ не соответствует abc123 в Java? - PullRequest
1 голос
/ 29 августа 2011

Я пытаюсь создать регулярное выражение для следующего правила.

RegEx: ([A-Z]|[0-9])[\\.a-zA-Z0-9_-]{0,}$

Правило: комбинация букв, дефиса и тире, также должна содержать заглавную букву иличисло.

Когда я пробую строку abc123, она совпадает с ожидаемым на Тестере регулярных выражений JavaScript .

Но в коде Java произошел сбой:

str.matches("([A-Z]|[0-9])[\\.a-zA-Z0-9_-]{0,}$")

Кто-нибудь знает причину?Это как-то связано с моей обычной строкой?

1 Ответ

5 голосов
/ 29 августа 2011

Дело в том, что вы не соответствуете всей строке, а только части "123". Наоборот String.matches дает только true, если полная строка соответствует.

Примечание. Ваше регулярное выражение не похоже на ваше описание. Соответствует строкам, которые начинаются с заглавной буквы числа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...