主要是為了方便檢視,此篇部落格幾乎沒有例子
表示式中的/
用來標示正規表示式的開始和結束
非列印字元
特殊字元 (如果本身需要匹配這個字元,需要轉義)
限定符
其中,定位符*
與+
限定符都是貪婪的,會盡可能匹配多的文字。
!限定符與定位符不能一起使用。選擇
用圓括號將所有選擇項括起來,相鄰的選擇項之間用|
分隔。但用圓括號會有乙個***,使相關的匹配會被快取,此時可用?:放在第乙個選項前來消除這種***。
其中?:
是非捕獲元之一,還有兩個非捕獲元是?=
和?!
,這兩個還有更多的含義,前者為正向預查,在任何開始匹配圓括號內的正規表示式模式的位置來匹配搜尋字串,後者為負向預查,在任何開始不匹配該正規表示式模式的位置來匹配搜尋字串。
反向引用
對乙個正規表示式模式或部分模式兩邊新增圓括號將導致相關匹配儲存到乙個臨時緩衝區中,所捕獲的每個子匹配都按照在正規表示式模式中從左到右出現的順序儲存。緩衝區編號從 1 開始,最多可儲存 99 個捕獲的子表示式。每個緩衝區都可以使用\n
訪問,其中 n 為乙個標識特定緩衝區的一位或兩位十進位制數。
可以使用非捕獲元字元?:
、?=
或?!
來重寫捕獲,忽略對相關匹配的儲存。
如:"is is the cost of of gasoline going up up"
,想要匹配其中的重複單詞,便可以這樣書寫正規表示式:/\b([a-z]+) \1\b/ig
。
其中,\1
指定第乙個子匹配項。\b
保證值匹配單詞,能夠區分is issued
或this is
這樣的片語;全域性標記g
指定將該表示式應用到輸入字串中能夠查詢盡可能多的匹配;i
標記指定不區分大小寫
元字元運算子優先順序
(從上至下優先順序從高到低),相同優先順序從左到右進行運算
正規表示式 正規表示式 總結
非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...
正規表示式 表示式
網域名稱 a za z0 9 a za z0 9 a za z0 9 a za z0 9 interneturl a za z s 或 http w w w 手機號碼 13 0 9 14 5 7 15 0 1 2 3 5 6 7 8 9 18 0 1 2 3 5 6 7 8 9 d 號碼 x x x...
Linux正規表示式 編寫正規表示式
為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...