регулярное выражение Java-строки - PullRequest
2 голосов
/ 27 сентября 2010

Может кто-нибудь помочь мне с кусочком регулярного выражения, пожалуйста? Я хочу, чтобы пользователь не вводил любой символ, кроме a-z или дефиса -

Надеюсь, кто-нибудь может мне помочь.

Спасибо

Ответы [ 4 ]

7 голосов
/ 27 сентября 2010

Вы можете использовать регулярное выражение: ^[a-z-]+$

  • ^: стартовый якорь
  • $: концевой анкер
  • [..]: класс чар
  • a-z: любой строчный алфавит
  • -: буквальный дефис. Дефис обычно является метасимволом внутри класса char, но если он присутствует как first или last char класса char, он трактуется буквально.
  • +: квантификатор для одного или нескольких

Если вы хотите разрешить пустую строку, вы можете заменить + на *

2 голосов
/ 27 сентября 2010

Если строка соответствует этому регулярному выражению ^[a-z\-]*$, тогда все в порядке.

2 голосов
/ 27 сентября 2010

Если вы разрешите использовать заглавные буквы, то:

^[A-Za-z-]+?$

в противном случае:

^[a-z-]+?$

2 голосов
/ 27 сентября 2010

Если строка не соответствует ^[a-z-]*$, то был введен запрещенный символ.Этот шаблон привязан , поэтому рассматривается вся строка и использует повторный класс символов (звездочка указывает ноль или более совпадений, поэтому пустая строка будетбыть принятым), чтобы гарантировать использование только разрешенных символов.

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