Вопрос:

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

regex unicode character-properties

40151 просмотра

7 ответа

3003 Репутация автора

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

[A-Za-Z]

Автор: Greg ''Wildman'' Finzer Источник Размещён: 11.11.2009 05:01

Ответы (7)


2 плюса

0 Репутация автора

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

Автор: Roger Pate Размещён: 11.11.2009 05:22

23 плюса

239136 Репутация автора

Решение

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

Автор: Tim Pietzcker Размещён: 11.11.2009 07:57

30 плюса

44428 Репутация автора

Если ваш аромат регулярного выражения поддерживает блоки Unicode , вы можете сопоставить русские (кириллические) символы с:

[\p{IsCyrillic}]

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

[U+0400–U+04FF]

Объяснение:

[\p{IsCyrillic}]

Options: Case insensitive; Exact spacing; Dot doesn’t match line breaks; ^$ don’t match at line breaks; Numbered capture

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

Заметка:

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

Автор: Pedro Lobito Размещён: 14.06.2011 10:50

8 плюса

728 Репутация автора

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

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

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

Автор: Олег Всильдеревьев Размещён: 29.07.2014 01:31

4 плюса

41 Репутация автора

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

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

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

Автор: Dipti Ghumbre Размещён: 30.01.2017 09:53

1 плюс

16 Репутация автора

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

[a-z\u0400-\u04FF]
Автор: lili.b Размещён: 25.05.2018 07:58

0 плюса

640 Репутация автора

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

[\u0410-\u044f\u0401\u0451]

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

[А-яЁё]

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

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

Автор: CITBL Размещён: 10.09.2018 11:48
Вопросы из категории :
32x32