Регулярное выражение соответствует только буквам

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

Ответ 1

Используйте набор символов: [a-zA-Z] соответствует одной букве из A-Z в нижнем регистре и в верхнем регистре. [a-zA-Z]+ соответствует одной или нескольким буквам, а ^[a-zA-Z]+$ соответствует только строкам, которые состоят только из одной или нескольких букв (^ и $ отмечают начало и конец строки соответственно).

Если вы хотите совместить другие буквы, чем A-Z, вы можете добавить их в набор символов: [a-zA-ZäöüßÄÖÜ]. Или вы используете предопределенные классы символов, такие как Свойство символов Unicode class \p{L}, которое описывает символы Unicode, которые являются буквами.

Ответ 2

\p{L} соответствует любому, что является буквой Unicode, если вас интересуют алфавиты за пределами латинского

Ответ 3

В зависимости от вашего значения "символ":

[A-Za-z] - все буквы (в верхнем и нижнем регистре)

[^0-9] - все символы без цифр

Ответ 4

Ближайшая доступная опция

[\u\l]+

который соответствует последовательности прописных и строчных букв. Однако он не поддерживается всеми редакторами/языками, поэтому, вероятно, безопаснее использовать

[a-zA-Z]+

как указывают другие пользователи.

Ответ 6

Для PHP последующие будут работать отлично

'/^[a-zA-Z]+$/'

Ответ 7

Регулярное выражение, которое несколько человек написало как "/^ [a-zA-Z] $/i", неверно, потому что в последнем случае они упомянули /i, который не зависит от регистра и после сопоставления в первый раз он вернется назад. Вместо /i просто используйте /g, который для глобального, и вам также не нужно помещать ^ $ для начала и окончания.

/[a-zA-Z]+/g
  • [a-z _] + соответствует одному символу, присутствующему в списке ниже
  • Квантификатор: + Между одним и неограниченным временем, как можно больше раз, отдавая при необходимости
  • a-z один символ в диапазоне между a и z (чувствительный к регистру)
  • A-Z один символ в диапазоне между A и Z (с учетом регистра)
  • g: глобальный. Все совпадения (не возвращаются в первом матче)

Ответ 8

Использование групп символов

\D

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

^\D+$

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

Ответ 9

Просто используйте \w или [:alpha:]. Это escape-последовательности, которые соответствуют только символам, которые могут появляться в словах.

Ответ 10

Вы использовали бы

/[a-z]/gi

[] - проверяет любые символы между заданными входами

a-z --- охватывает весь алфавит

g ----- глобально по всей строке

i ----- получение верхнего и нижнего регистра

Ответ 11

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

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

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

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

Плюсы:

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

Минусы:

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

Ответ 12

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

Ответ 13

pattern =/[a-zA-Z]/

помещает "[a-zA-Z]: # {pattern.match(" my blossom ")}" ОК

помещает "[a-zA-Z]: # {pattern.match(" 456 ")}"

помещает "[a-zA-Z]: # {pattern.match(" ")}"

помещает "[a-zA-Z]: # {pattern.match(" # $% ^ & * ")}"

помещает "[a-zA-Z]: # {pattern.match(" # $% ^ & * A ")}" OK

Ответ 14

String string= "abcdef";

if(string.match("^[a-zA-Z]+$$")){
     System.out.println("string only contains letters");
}

Ответ 15

Pattern pattern = Pattern.compile("^[a-zA-Z]+$");

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

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