2009-05-22 3 views
6

Языки регулярных выражений используют \ B для включения A..Z, a..z, 0..9 и _, а \ b определяется как граница слова.Что такое регулярное выражение для испанского слова?

Как написать регулярное выражение, которое соответствует всем действительным испанским словам, включая символы, такие как: á, í, ó, é, ñ и т. Д.?

Я использую .NET.

ответ

6

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

1

Ваша система регулярных выражений должна иметь нечто эквивалентное Питон re.L (ака re.LOCALE), чтобы сделать регулярное выражение Локальнозависимым, так что то, что это слово-символ, и то, что не меняется с локалью, как это делает «граница слов» и т.д. Вы вместо этого попросите способ компенсировать некоторую заданную систему регулярных выражений не поддержка локали, пытаясь заставить проблему в любом случае ...?

1

Это зависит в значительной степени от языка (и двигателя регулярных выражений), который вы используете.

В Perl \w соответствует всем символам слов, независимо от языка или алфавита, и что-то вроде /\b(\w+)\b/ будет (возможно) соответствовать испанским словам, а также английским словам или русским словам.

В языках, использующих PCRE, \w (и, следовательно, возможно, \b) НЕ соответствуют символам Unicode. Вам, вероятно, понадобится создать свой собственный набор. Я предлагаю что-то вроде [\wáéíóúñ] (соответствует всем символам слов, а также выделенным символам), а библиотека PCRE должна быть предварительно построена с поддержкой Unicode, прежде чем это будет работать.

Если вы используете что-то еще, удачи. Некоторые двигатели регулярных выражений даже не поддерживают Unicode.

Смежные вопросы