PCRE поддържа ли правилно уникод низ?
PCRE поддържа ли уникод низ правилно?
Отговори (3)
Да, така е (въпреки че вероятно все още не е Unicode 6). От страницата на ръководството:
Текущата реализация на PCRE съответства приблизително на Perl 5.12, включително порт за UTF-8 кодирани низове и Unicode общи свойства на категорията. Поддръжката на UTF-8 и Unicode обаче трябва да бъде изрично активирана; не е по подразбиране. Unicode таблиците съответстват на Unicode версия 5.2.0.
Поддържа напълно Unicode 5.1
Ако вашият PCRE е компилиран без активиран UTF-8, можете да го включите, като добавите (*UTF8)
в началото на вашия регулярен израз.
Например:
> echo ‒ | grep -Po '[‒]'
съвпада с всеки от 3-те utf-8 кода на символа ‒
поотделно (т.е.: 3 реда изход), докато това:
> echo ‒ | grep -Po '(*UTF8)[‒]'
има очаквания резултат, създавайки един ред изход, съдържащ знака ‒
.
(Използвам стандартна инсталация на Ubuntu 12.04)