正则表达式怎么匹配⾮汉字⾮字母⾮数字之外的字符
汉字的表⽰和正则表达式引擎相关,不同引擎的写法不同,下⾯的写法适⽤于java引擎,或者⼀切以unicode来表⽰字符的引擎。unicode汉字
1、基本规格——针对汉字的⼀般集合(cp936,约等于GBK,共计20000多汉字)
[^\dA-Za-z\u3007\u4E00-\u9FCB\uE815-\uE864]
2、扩充规格——针对多⼀些的汉字(⽀持CJK ExtA,共计接近30000汉字)
[^\dA-Za-z\u3007\u3400-\u4DB5\u4E00-\u9FCB\uE815-\uE864]
3、豪华规格——针对更多的汉字(⽀持CJK ExtB、C、……,共计75000多汉字)
(?![\dA-Za-z\u3007\u3400-\u4DB5\u4E00-\u9FCB\uE815-\uE864]|[\uD840-\uD87F][\uDC00-\uDFFF])
匹配汉字和特殊符号很简单,\w 相当于 [a-zA-Z0-9] 意思就是匹配⼤⼩写英⽂字母和数字。我们只需要在前⾯加 ^ 符号。
例如:[^\w] 或者 [^a-zA-Z0-9] 意思就是 ⼤⼩写英⽂字母和数字 以外的字符。最终结果包括汉字和特殊
字符了。