Регулярное выражение, чтобы соответствовать только буквы - PullRequest
318 голосов
/ 01 сентября 2010

Как я могу написать регулярное выражение, которое соответствует только буквам?

Ответы [ 15 ]

5 голосов
/ 27 июня 2017

Использовать группы символов

\D

Соответствует любому символу, кроме цифр 0-9

^\D+$

См. Пример здесь

3 голосов
/ 25 июля 2014

Вы можете попробовать это регулярное выражение: [^\W\d_] или [a-zA-Z].

3 голосов
/ 12 декабря 2013

Если вы имеете в виду любые буквы в любой кодировке символов, то хорошим подходом может быть удаление не букв, таких как пробелы \s, цифры \d и других специальных символов, таких как:

[!@#\$%\^&\*\(\)\[\]:;'",\. ...more special chars... ]

Или используйте отрицание вышеупомянутого отрицания для непосредственного описания любых букв:

\S \D and [^  ..special chars..]

Плюсы:

  • Работает со всеми вкусами регулярных выражений.
  • Легко писать, иногда экономит много времени.

Минусы:

  • Длинно, иногда не идеально, но кодировка символов также может быть нарушена.
1 голос
/ 30 июня 2014

pattern = / [a-zA-Z] /

устанавливает "[a-zA-Z]: # {pattern.match (" mine flower ")}" "OK

ставит "[a-zA-Z]: # {pattern.match (" 456 ")}"

Put "[a-zA-Z]: # {pattern.match (" ")}"

ставит "[a-zA-Z]: # {pattern.match (" # $% ^ & * ")}"

ставит "[a-zA-Z]: # {pattern.match ("# $% ^ & * A")} "ОК

0 голосов
/ 24 мая 2016
Pattern pattern = Pattern.compile("^[a-zA-Z]+$");

if (pattern.matcher("a").find()) {

   ...do something ......
}
...