Как сопоставить международный алфавит (английский a-z, + не английский) с регулярным выражением?
Я хочу разрешить только введенные данные из английского алфавита и из алфавита из Германии.
Как öäü
ИЛИ Франция, как áê
или китайская, как...
Как я могу настроить свое регулярное выражение, чтобы оно принимало все алфавитные символы из международного алфавита?
Ответы
Ответ 1
Поскольку вы специально запрашиваете Unicode, \p{L}
является ярлыком для буквы Юникода. Однако не все ароматы регулярных выражений поддерживают этот синтаксис..NET, Perl, Java и JGSoft-regex engine, например, Python не будет.
Итак, например \b\p{L}+\b
будет соответствовать целому слову символов Unicode.
Ответ 2
С PCRE это будет \w
, символ "word". Он также принимает Unicode при правильной настройке.
Ответ 3
Это меняется. Некоторые языки имеют флаг "Unicode", который расширяет \d
, \w
и т.д. Некоторые поддерживают классы эквивалентности в диапазоне, например. [[=e=]]
соответствует e
, é
, ê
и т.д. Документация regex для вашего языка или библиотеки объяснит, какие опции доступны.
Ответ 4
В многоязычных языках вы можете просто ввести символы юникода в класс символов: [a-zäöüß]
и т.д.