正規表示式

2021-06-22 10:48:01 字數 968 閱讀 6687

1、正規表示式取反

(?!exp) 匹配後面跟的不是exp的位置,例如:

對於字串:acbca,正規表示式:regex:(?!a)

匹配結果:a|b|ca|c  (紅色豎線位置)(匹配後邊不是a的位置)

regex:(?!a)\wc 匹配結果:abcac(只匹配b後的c不匹配a後的c)

對於文字:

abcabcd

abd若想選擇不是以abc開始的行。regex:^(?!abc).*$

(?!crh1)(crh[0-9][af]|380[abcd][l])===表示後面跟的不是以crh1且滿足(crh[0-9][af]|380[abcd][l])的所有字串。

2、(?:pattern)與(?=pattern)的區別

(pattern) : 匹配 pattern 並獲取這一匹配,所獲取的匹配可以從產生的 matches 集合得到。

(?:pattern) :匹配 pattern 但不獲取匹配結果,也就是說這是乙個非獲取匹配,不進行儲存供以後使用。

(?=pattern) :正向預查,在任何匹配 pattern 的字串開始處匹配查詢字串。這是乙個非獲取匹配,也就是說,該匹配不需要獲取供以後使用。預查不消耗字元,也就是說,在乙個匹配發生後,在最後一次匹配之後立即開始下一次匹配的搜尋,而不是從包含預查的字元之後開始。

(?:pattern)(?=pattern)都匹配pattern,但不會把pattern結果放到matches的集合中,即matcher.group()不會匹配到(?;pattern)與(?=pattern)

即「windows (?:98|2000|xp)abc」類似但不等同於「windows (?=98|2000|xp)(98|2000|xp)abc」(因為後者可以獲取匹配)。

3、推薦**

常用正規表示式、正規表示式查詢和學習

如何看懂複雜的正規表示式

正規表示式基本語法

正規表示式 正規表示式 總結

非負整數 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正規表示式 編寫正規表示式

為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...