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

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

[A-Za-Z]

Ответ 1

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

Ответ 2

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

[\p{IsCyrillic}] or [\p{Cyrillic}]

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

[U+0400–U+04FF]

Для PHP используйте:

[\x{0400}-\x{04FF}]

Объяснение:

[\p{IsCyrillic}]

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

Примечание:

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

Ответ 3

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

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

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

Ответ 4

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

^[[email protected]?#"$%&:;() *\+,\/;\-=[\\\]\^_{|}<>\u0400-\u04FF]*$

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

Ответ 5

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

[a-z\u0400-\u04FF]

Ответ 6

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

Ответ 7

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

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

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

Ответ 8

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

[\u0401\u0451\u0410-\u044f]

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

[ЁёА-я]

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

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

Ответ 9

В Java для сопоставления кириллицы и пробела используйте следующий шаблон

^[\p{InCyrillic}\s]+$