匹配Unicode控制字符,除了三个正则表达式

时间:2009-07-04 23:56:27

标签: regex unicode pcre control-characters

我需要获得一个正则表达式,它匹配除回车符(0x0d),换行符(0x0a)和制表符(0x09)之外的所有Unicode控制字符。目前,我的正则表达式如下所示:

/\p{C}/u

我现在只需要定义这三个例外。

1 个答案:

答案 0 :(得分:7)

我认为你可以在这里使用负面预测,并结合角色类。

/(?![\x{000d}\x{000a}\x{0009}])\p{C}/u

这样做是使用否定先行来断言该字符不是字符类中指定的字符之一。然后它再次遍历角色以使其与任何控制角色匹配。

我使用perl语法指定单个unicode点。

关于外观的更多讨论here

(请注意,这尚未经过测试,但我认为这个概念是正确的。)