Как написать регулярное выражение, которое соответствует только буквам?
Регулярное выражение соответствует только буквам
Ответ 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]+
как указывают другие пользователи.
Ответ 5
/[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 ......
}