非字母数字匹配(否定字符类)

[^0-9a-zA-Z]

这将匹配所有既不是数字也不是字母(字母数字字符)的字符。如果下划线字符 _ 也被否定,则表达式可以缩短为:

[^\w]

要么:

\W

在以下句子中:

  1. 嗨,怎么了?

  2. 我等不及 2017 了!!!

以下字符匹配:

  1. , '? 和行尾字符。

  2. ' ,, ! 和行尾字符。

UNICODE 注意
请注意,某些具有 Unicode 字符属性支持的风格可能会将\w\W 解释为 [\p{L}\p{N}_][^\p{L}\p{N}_],这意味着其他 Unicode 字母和数字字符也将被包含在内(请参阅 PCRE 文档 )。这是一个 PCRE \w 测试StackOverflow 文档

在 .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 文档 ):

StackOverflow 文档

请注意,由于某种原因,Unicode 3.1 小写字母(如𝐚𝒇𝓌𝔨𝕨𝗐𝛌𝛚)不匹配。

Java 的 (?U)\w 将匹配 PCRE 和 .NET 中\w 匹配的组合: StackOverflow 文档