非字母数字匹配(否定字符类)
[^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
匹配的组合: