Регулярное выражение для улавливания букв за пределами a-z

Нормальное регулярное выражение, чтобы допускать только буквы, было бы "[a-zA-Z]", но я из Швеции, поэтому мне пришлось бы изменить это на "[a-zåäöA-ZÅÄÖ]". Но предположим, что я не знаю, какие буквы используются в алфавите.

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

Ответ 1

Вы можете использовать \pL для соответствия любой букве, которая будет поддерживать все буквы на всех языках. Вы можете сузить его до определенных языков, используя "именованные блоки". Более подробную информацию можно найти в документации Character Classes в MSDN.

Моя рекомендация заключалась бы в том, чтобы поместить регулярное выражение (или, по крайней мере, часть "письма" ) в локализованный ресурс, который затем можно вывести на основе текущей локали и формы в более крупный шаблон.

Ответ 2

Как насчет \p {name}?

Соответствует любому символу в названном символьном классе, указанном в {name}. Поддерживаемые имена - это группы Unicode и диапазоны блоков. Например, L1, Nd, Z, IsGreek, IsBoxDrawing.

Я не знаю достаточно о unicode, но, может быть, ваши персонажи соответствуют классу unicode?

Ответ 4

Все символы "действительны", поэтому я думаю, что вы действительно просите символы, которые "обычно считаются буквами" в локали.

Спецификация Unicode содержит некоторые рекомендации, но в целом ответ "нет", вам нужно будет указать символы, которые вы решили, "буквы".

Ответ 5

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

Это вообще не возможно.

После того, как текст Engligh содержит некоторые акцентированные символы (например, в "fête" и "naivve" ), которые на английском языке строго правильны, все равно используйте акценты). На некоторых языках редко используются стандартные буквы (например, y-diaeresis на французском языке).

Затем рассмотрим включение включенных иностранных слов (это часто бывает, когда используются технические термины). Котировки будут другим источником.

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

Ответ 6

Это регулярное выражение позволяет использовать только допустимые символы:

[a-zA-ZÀ-ÿ ]