非字母數字匹配(否定字元類)
[^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
匹配的組合: