Соответствие регулярному выражению в Java - PullRequest
4 голосов
/ 18 июня 2010

регулярных выражений в Java Я хочу сделать регулярное выражение, кто это делает убедитесь, что слово имеет вид [0-9A-Za-z] [._- '] [0-9A-Za-z] пример правильных слов

A21a_c32 
daA.da2
das'2
dsada
ASDA
12SA89

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

dsa#da2
34$

Спасибо

Ответы [ 3 ]

2 голосов
/ 18 июня 2010

^[0-9A-Za-z]+[._'-]?[0-9A-Za-z]+$ ( смотреть матчи на rubular.com )

Ключевые моменты:

  • ^ - начало привязки строки
  • $ - конец якоря строки
  • + - это «одно или несколько повторений»
  • ? - это «повторение ноль или единица» (то есть «необязательно»)
  • - в определении класса символов является специальным (определение диапазона) ...
    • если только он не сбежал, или первый, или последний
  • . выход за пределы определения класса символов является особенным ...
    • но в определении класса персонажа это просто точка

Ссылки

1 голос
/ 18 июня 2010
"(\\p{Alnum})*([.'_-])?(\\p{Alnum})*"

В этом решении я предполагаю, что разделитель является необязательным, пустая строка также допустима, и что строка может начинаться / заканчиваться разделителем или состоять только из разделителя.

1 голос
/ 18 июня 2010

Если [._'-] является необязательным, введите ? с следующими символами, например:

[0-9A-Za-z]+([._'-][0-9A-Za-z]+)?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...