非字母数字匹配(否定字符类)
[^0-9a-zA-Z]
这将匹配所有既不是数字也不是字母(字母数字字符)的字符。如果下划线字符 _ 也被否定,则表达式可以缩短为:
[^\w]
要么:
\W
在以下句子中:
嗨,怎么了?
我等不及 2017 了!!!
以下字符匹配:
,,',?和行尾字符。
',,!和行尾字符。
UNICODE 注意
请注意,某些具有 Unicode 字符属性支持的风格可能会将\w 和\W 解释为 [\p{L}\p{N}_] 和 [^\p{L}\p{N}_],这意味着其他 Unicode 字母和数字字符也将被包含在内(请参阅 PCRE 文档 )。这是一个 PCRE \w 测试 : 
在 .NET 中, \w = [\p{Ll}\p{Lu}\p{Lt}\p{Lo}\p{Lm}\p{Mn}\p{Nd}\p{Pc}] ,注意它不匹配\p{Nl} 和\p{No} 与 PCRE 不同(参见 \w .NET 文档 ):

请注意,由于某种原因,Unicode 3.1 小写字母(如𝐚𝒇𝓌𝔨𝕨𝗐𝛌𝛚)不匹配。
Java 的 (?U)\w 将匹配 PCRE 和 .NET 中\w 匹配的组合: 