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

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

Ответы [ 15 ]

338 голосов
/ 01 сентября 2010

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

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

168 голосов
/ 01 сентября 2010

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

42 голосов
/ 01 сентября 2010

В зависимости от значения слова «символ»:

[A-Za-z] - все буквы (прописные и строчные)

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

28 голосов
/ 17 октября 2014

Ближайший доступный вариант -

[\u\l]+

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

[a-zA-Z]+

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

13 голосов
/ 04 апреля 2016

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

/[a-z]/gi

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

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

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

i ----- получая прописные и строчные буквы

12 голосов
/ 13 сентября 2016

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

/[a-zA-Z]+/g
  1. [a-z _] + соответствует одному символу, присутствующему в списке ниже
  2. Квантор: + От одного до неограниченного временистолько раз, сколько возможно, возвращая по мере необходимости
  3. az один символ в диапазоне между a и z (с учетом регистра)
  4. AZ один символ в диапазоне между A и Z (с учетом регистра)
  5. g модификатор: global.Все матчи (не возвращаются в первом матче)
11 голосов
/ 14 ноября 2013

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

'/^[a-zA-Z]+$/'
10 голосов
/ 01 сентября 2010
/[a-zA-Z]+/

Супер простой пример. Регулярные выражения очень легко найти в Интернете.

http://www.regular -expressions.info / reference.html

8 голосов
/ 22 марта 2017

Java:

String s= "abcdef";

if(s.matches("[a-zA-Z]+")){
     System.out.println("string only contains letters");
}
6 голосов
/ 28 мая 2014

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

...