正規表示式中的「 「這個符號的一些思考

2021-07-10 18:43:26 字數 895 閱讀 6408

在學習正規表示式的時候,一些常見的規則我們都不難理解,但是有 乙個正規表示式中的特殊字元讓我一直有點搞不懂,就是"^"這個字元,文件上給出了解釋是匹配輸入的開始,如果多行標示被設定成了true,同時會匹配後面緊跟的字元。比如

/^a/會匹配"an e"中的a,但是不會匹配"ab a"中的a
然後他還有第二種用法就是

當這個字元出現在乙個字元集合模式的第乙個字元時,他將會有不同的含義。

比如

/[^a-z\s]/會匹配"my 3 sisters"中的"3"
這裡的"^「的意思是字元類的否定,上面的正規表示式的意思是匹配不是(a到z和空白字元)的字元。

以前總是搞不懂,什麼時候」^"是否定字元,什麼時候是匹配開始行,然後就查資料進行對比,終於發現了規律。

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

(^cat)$

(^cat$)

^(cat)$

^(cat$)

上面這個正規表示式中"^"就是限定開頭的意思

這些正規表示式中"^"表示的就是表示字元類的否定。

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

[^a-za-z0-9]表示「找到乙個非字母也非數字的字元」。

[\^abc]表示「找到乙個插入符或者a或者b或者c」。

[^\^]表示「找到除了插入符外的任意字元」。(嘔!)

經過對比,我發現了只要是"^「這個字元是在中括號」「中被使用的話就是表示字元類的否定,如果不是的話就是表示限定開頭。我這裡說的是直接在」「中使用,不包括巢狀使用。

其實也就是說」「代表的是乙個字符集,」^"只有在字符集中才是反向字符集的意思。

正規表示式的一些符號

字元描述 將下乙個字元標記為乙個特殊字元 或乙個原義字元 或乙個 向後引用 或乙個八進位制轉義符。例如,n 匹配字元 n n 匹配乙個換行符。序列 匹配 而 則匹配 匹配輸入字串的開始位置。如果設定了 regexp 物件的 multiline 屬性,也匹配 n 或 r 之後的位置。匹配輸入字串的結束...

java 正規表示式的一些符號

x 字元 x 反斜線字元 0n 八進位制值的字元0n 0 n 7 0nn 八進位制值的字元 0nn 0 n 7 0mnn 八進位制值的字元0mnn 0mnn 0 m 3,0 n 7 xhh 十六進製制值的字元0xhh uhhhh 十六進製制值的字元0xhhhh t 製表符 u0009 n 換行符 u...

正規表示式符號的一些理解

關於正規表示式符號的一些理解 a 匹配有a或者沒有a 的字元 匹配全部字元 沒有意義 ba 匹配至少乙個b後面有多個或零個a cca 匹配至少包含cc的後面有乙個或多個a a hello匹配所有0個或多個a後,緊跟hello的行。即hello前面可以有任意多個a。s d 匹配 s d之間任意兩個字元...