Как сопоставить кириллицу с регулярным выражением - PullRequest
46 голосов
/ 11 ноября 2009

Как сопоставить символы французского и русского алфавита с регулярным выражением? Я хочу использовать только буквы, без цифр и специальных символов. Прямо сейчас у меня есть

[A-Za-Z]

Ответы [ 8 ]

36 голосов
/ 14 июня 2011

Если ваш аромат regex поддерживает блоки Unicode ([\p{IsCyrillic}]), вы можете сопоставить русские ( кириллические ) символы с:

[\p{IsCyrillic}]

В противном случае попробуйте:

[U+0400–U+04FF]

Пояснение:

[\p{IsCyrillic}]

Match a character from the Unicode block “Cyrillic” (U+0400–U+04FF) «[\p{IsCyrillic}]»

Примечание:

Список символов Unicode и числовые HTML-объекты [U+0400–U+04FF].

23 голосов
/ 11 ноября 2009

Это зависит от вашего вкуса регулярных выражений. Если он поддерживает классы символов Unicode (например, .NET), \p{L} соответствует буквенному символу (в любом наборе символов).

10 голосов

Если вы используете современную версию PHP - просто:

preg_match("/^[\p{L}]+$/u");

Не забудьте флаг u для поддержки юникода!

4 голосов
/ 30 января 2017

регулярное выражение для сопоставления кириллицы с обычными (английскими) алфавитами:

^[A-Za-z.!@?#"$%&:;() *\+,\/;\-=[\\\]\^_{|}<>\u0400-\u04FF]*$

Соответствует специальным символам, кириллице, английскому алфавиту.

3 голосов
/ 25 мая 2018

это сработало для меня

[a-z\u0400-\u04FF]
2 голосов
/ 11 ноября 2009

Различные диалекты регулярных выражений используют [:alpha:] для любого буквенно-цифрового символа в текущей локали. (Вам может понадобиться поместить это в класс персонажа, например, [[:alpha:]].)

1 голос
/ 12 января 2019

Если вы используете эликсир:

String.match?(string, ~r/^\p{Cyrillic}*$/u)

Вам необходимо добавить флаг u для поддержки юникода.

0 голосов
/ 10 сентября 2018

Для соответствия только русским буквам кириллицы используйте:

[\u0401\u0451\u0410-\u044f]

, что эквивалентно:

[ЁёА-я]

, где А - кириллица, а не латынь. (Несмотря на то, что они выглядят одинаково, они имеют разные коды)

\p{IsCyrillic}, \p{Cyrillic}, [\u0400-\u04FF], которые другие предложили, будут соответствовать всем вариантам кириллицы , не только русским

...