1. 程式人生 > 程式設計 >正則表示式[\s\S]*與[\w\W]* 什麼意思

正則表示式[\s\S]*與[\w\W]* 什麼意思

問:

例如:[a-z]表示從a到z之間的任意一個。
不是這樣的嗎?誰能給我解釋一下[ ]的所有用法?感謝

答:

是完全通配的意思,\s是指空白,包括空格、換行、tab縮排等所有的空白,而\S剛好相反
這樣一正一反下來,就表示所有的字元,完全的,一字不漏的。
另外,[]這個符號,表示在它裡面包含的單個字元不限順序的出現,比如下面的正則:

[ace]*

這表示,只要出現a/c/e這三個任意的字母,都會被匹配

[\s]表示,只要出現空白就匹配
[\S]表示,非空白就匹配

\w 匹配包括下劃線的任何單詞字元。等價於“[A-Za-z0-9_]"。
\W 匹配任何非單詞字元。等價於“[^A-Za-z0-9_]"。

那麼它們的組合,表示所有的都匹配,與它相對應的,有[\w\W]等,意義完全相同、

另外要說的一點是,為什麼有"."這個萬用字元了,還要這樣的用法。

其實,[\s\S][\w\W]這樣的用法,比較"."所匹配的還要多,因為"."是不會匹配換行的,所有出現有換行匹配的時候,人們就習慣 使用[\s\S]或者[\w\W]這樣的完全通配模式。