2009-07-04 20 views
3

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

/\p{C}/u 

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

+0

这是为PHP?为了给你最好的答案,我们需要知道你正在使用哪种正则表达式。达思Eru的答案将在PHP中工作,但其他口味将需要不同的方法。 – 2009-07-05 04:30:24

+0

哦,对不起。是的,PHP使用Perl Compatible Regular Expressions。 – Tower 2009-07-05 10:41:51

回答

6

我想你可以在这里使用一个负面的lookahead,并结合角色类。

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

这样做是否使用负向前视来声明该字符不是字符类中指定的字符之一。然后它再次遍历该角色以与任何控制角色匹配。

我使用perl语法来指定单个unicode点。在lookarounds here

更多的讨论(请注意,这还没有测试过,但我认为这个概念是正确的。)

相关问题