PCRE правильно поддерживает строку Unicode? - PullRequest
5 голосов
/ 30 апреля 2011

Правильно ли PCRE поддерживает строку Unicode?

Ответы [ 3 ]

8 голосов
/ 30 апреля 2011

Да, это так (хотя, вероятно, еще не Unicode 6).Со страницы руководства :

Текущая реализация PCRE примерно соответствует Perl 5.12, включая порт для строк в кодировке UTF-8 и свойства общей категории Unicode.Однако поддержка UTF-8 и Unicode должна быть явно включена;это не по умолчанию.Таблицы Unicode соответствуют выпуску Unicode 5.2.0.

0 голосов
/ 04 октября 2012

Если ваш PCRE был скомпилирован без включенного UTF-8, вы можете включить его, добавив (*UTF8) в начало вашего регулярного выражения.

Например:

> echo ‒ | grep -Po '[‒]'

соответствует каждому из 3 кодов utf-8 символа по отдельности (то есть: 3 строки вывода), тогда как это:

> echo ‒ | grep -Po '(*UTF8)[‒]'

имеет ожидаемый результат, производя одну строку вывода, содержащую символ .

(я использую стандартную установку Ubuntu 12.04)

0 голосов
/ 01 мая 2011

Он полностью поддерживает Unicode 5.1

...