正則表示式中^符號表達的意思
阿新 • • 發佈:2019-01-25
今天看到程式碼中有段程式碼覺得很奇怪,
一開始看著,一臉懵逼,為啥把中文替換掉了,那還要這個方法有什麼用?
最後,自己寫了一個方法測試了一下,
才發現了貓膩,原來是正則表示式中這個“^”符號有貓膩,意思就是“非”的意思,所以在這段程式碼的意思就是,將不是中文的字元全部替換掉,也可以理解為,只匹配中文漢字,
然後在網上找了點資料,總結了一下
/^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]表示“找到一個非字母也非數字的字元”。
經過對比,我發現了”^”這個字元在中括號”[]”中被使用的話就表示字元類的否定,如果不是的話就是表示限定開頭。我這裡說的是直接在”[]”中使用,不包括巢狀使用。
其實也就是說”[]”代表的是一個字符集,”^”只有在字符集中才是反向字符集的意思。