2012-05-28 88 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 \ p {}寶是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) 

該正則表達式首先允許或B或C,就看Unicode的屬性允許不同的字符,然後禁止負回顧後的B字。

上面的正則表達式最終會匹配a和c而不是b。

+0

該語法與pcre語法兼容:) – chrislovecnm