1. 程式人生 > >正則表示式中^符號表達的意思

正則表示式中^符號表達的意思

今天看到程式碼中有段程式碼覺得很奇怪,

一開始看著,一臉懵逼,為啥把中文替換掉了,那還要這個方法有什麼用?

最後,自己寫了一個方法測試了一下,

才發現了貓膩,原來是正則表示式中這個“^”符號有貓膩,意思就是“非”的意思,所以在這段程式碼的意思就是,將不是中文的字元全部替換掉,也可以理解為,只匹配中文漢字,

然後在網上找了點資料,總結了一下

/^A/會匹配"An e"中的A,但是不會匹配"ab A"中的A,此時^A的意思是“匹配開頭的A”,類似的有

/[(^\s+)(\s+$)]/g

(^cat)$

(^cat$)

^(cat)$

^(cat$)

/[^a-z\s]/會匹配"my 3 sisters"中的"3 ",此時^的意思是“非”,類似的有

[^a]表示“匹配除了a的任意字元”。

[^a-zA-Z0-9]表示“找到一個非字母也非數字的字元”。

經過對比,我發現了”^”這個字元在中括號”[]”中被使用的話就表示字元類的否定,如果不是的話就是表示限定開頭。我這裡說的是直接在”[]”中使用,不包括巢狀使用。 
其實也就是說”[]”代表的是一個字符集,”^”只有在字符集中才是反向字符集的意思。