Регулярное выражение "\ w" не обрабатывает символы utf-8 в Ruby 1.9.2 - PullRequest
2 голосов
/ 20 октября 2010

Regex \w не соответствует символам utf-8 в Ruby 1.9.2. Кто-нибудь сталкивался с такой же проблемой?

Пример:

/[\w\s]+/u

В моем приложении rails application.rb я добавил config.encoding = "utf-8"

Ответы [ 2 ]

9 голосов
/ 20 октября 2010

Определить "не соответствует utf-8 символов"?Если вы ожидаете, что \w будет совпадать с чем-либо иным, кроме прописных и строчных букв ASCII, цифр ASCII и подчеркивания, это не будет - Ruby определил \w как эквивалентное [A-Za-z0-9_] независимо от Unicode.Может быть, вы хотите \p{Word} или что-то подобное вместо этого.

Ref: Ruby 1.9 Документация по регулярному выражению (см. Раздел «Классы символов»).

0 голосов
/ 18 мая 2012

Вы всегда можете использовать что-то вроде

[a-zA-Z0-9_ñáéíóú] 

вместо \w

...