2012-05-28 1 views
0

8 включен pcre, и я пытаюсь сопоставить группу \ p {Po} и множество других вещей.Класс символьного класса pcre не соответствует символу в диапазоне

Я хочу исключить символ амперсанда. Как исключить из класса определенный персонаж?

-- lua btw  
local utf8_general_punctuation_reg = "[\\p{Po}\\p{Cc}\\p{Cs}\\p{Pc}\\p{Pe}\\p{Ps}\\p{Pf}\\p{Pi}\\p{Sm}\\x{2100}-\\x{2123}\\x{2600}-\\x{26ff}]+" 

Заранее благодарен!

BTW \ р {Ро} для utf8 http://www.fileformat.info/info/unicode/category/Po/list.htm

Просто добавив, что работает от ответа ниже:

local utf8_general_punctuation_reg = "[\\p{Po}\\p{Cc}\\p{Cs}\\p{Pc}\\p{Pe}\\p{Ps}\\p{Pf}\\p{Pi}\\p{Sm}\\x{2100}-\\x{2123}\\x{2600}-\\x{26ff}]+(?<!(&|\\.|:))" 

ответ

1

Вы можете использовать отрицательный для этого назад '. Я не знаком с синтаксисом pcre.

[abc](?<!b) 

Это регулярное выражение первого позволяет или б или просто выглядеть Unicode Свойство позволяет выполнять различные символы, а затем запретить символ Ь с отрицательным просмотром назад.

Регулярное выражение выше будет соответствовать a и c в конце, но не b.

+0

этот синтаксис совместим с синтаксисом pcre :) – chrislovecnm

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

  • Нет связанных вопросов^_^