Regex - Что будет регулярным выражением для сопоставления иностранных символов?

Я занимаюсь разработкой и применением для европейского клиента, и у них есть свой собственный набор символов.

Теперь мне нужно иметь регулярное выражение, которое позволило бы иностранные символы, такие как eéèêë и т.д., и я не уверен, как это можно сделать.

Какие-либо предложения?

5 ответов

Решение

Если все, что вы хотите сопоставить, это буквы (включая "международные"), вы можете использовать \p{L},

Вы можете найти некоторую информацию о регулярных выражениях и Unicode здесь.

Если вы хотите сопоставить любой латинский символ с ударением или диакритическим знаком практически в любом механизме регулярных выражений, попробуйте:

[A-Za-zŽžÀ-ÿ]

Он соответствует любому символу из следующих наборов « Printable and Extended ASCII Character » :

      ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
ŽžÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ

Соответствует {char} (индекс символов ASCII, с учетом регистра):

Протестируйте его на https://regex101.com/r/Xbbtm1/1.

\p{L} еще не поддерживает кроссбраузерность. Транспортировка этого кода даст вам сильно раздутый код, если вы будете его часто использовать.

Вот краткий и приятный ответ на то, как обычно включать буквы не в формате ASCII, которые не добавляют миллиарды строк JavaScript или плагинов. Замените a-zA-Z0-9 или \w в вашем регулярном выражении на это и не используйте флаг u:

\ u00BF- \ u1FFF \ u2C00- \ uD7FF \w

Это вставлено во все мои регулярные выражения JavaScript вместо a-zA-Z0-9 или \w, похоже, работает. Мой контекст заключался в различении UTF-8 в HTML и CSS, и он должен был быть кроссбраузерным.

Я не могу поверить, что это так просто, так что жду, когда меня докажут, после целого дня поисков попыток заставить что-то работать в Firefox...

Я тестировал это только на японской хиригане с французским акцентом.

Зависит от используемой библиотеки регулярных выражений / языка регулярных выражений.

[e\xE8\xE9\xEA\xEB] будет соответствовать любому из eéèêë

Другие вопросы по тегам