正規表示式摘要

2021-05-23 00:13:17 字數 2056 閱讀 4474

一些特殊符號在表示式中代表抽象的特殊意義:

表示式作用^

與字串開始的地方匹配,不匹配任何字元$

與字串結束的地方匹配,不匹配任何字元/b

匹配乙個單詞邊界,也就是單詞和空格之間的位置,不匹配任何字元

舉 例1:表示式 "^aaa

" 在匹配 "*** aaa ***" 時,匹配結果是:失敗。因為 "^" 要求與字串開始的地方匹配,因此,只有當 "aaa" 位於字串的開頭的時候,"^aaa" 才能匹配,比 如:"aaa *** ***"。

舉 例2:表示式 "aaa$

" 在匹配 "*** aaa ***" 時,匹配結果是:失敗。因為 "$" 要求與字串結束的地方匹配,因此,只有當 "aaa" 位於字串的結尾的時候,"aaa$" 才能匹配,比 如:"*** *** aaa"。

舉 例3:表示式 "./b.

" 在匹配 "@@@abc" 時,匹配結果是:成功;匹配到的 內容是:"@a";匹配到的位置是:開始於2,結束於4。

進一步說明:"/b" 與 "^" 和 "$" 類似,本身不匹配任何字元,但是它要求它在匹配結果中所處位置的左右兩邊,其中一邊是 "/w" 範圍,另一邊是 非"/w" 的範圍。

舉 例4:表示式 "/bend/b

" 在匹配 "weekend,endfor,end" 時,匹配結果是:成功;匹配到的內容是:"end";匹配到的位置是:開始於15,結束於 18。

貪婪模式與非貪婪模式

貪婪模式:能匹配成功的情況下,盡可能多的匹配。

反向引用/1, /2,...

哪一對的左括號 "(" 在前,那這一對就先排序號。

正向預搜尋

特殊符號:"^","$","/b",它們都有乙個共同點,那就是:它們本身不匹配任何字元,只是對 "字串的兩頭" 或者 "字元之間的縫隙" 附加了乙個條件。理解到這個概念以後,繼續介紹另外一種對 "兩頭" 或者 "縫隙" 附加條件的,更加靈活的表示方法。

正向預搜尋:"(?=***xx)","(?!***xx)"

格式:"(?=***xx)",在被匹配的字串中,它對所處的 "縫隙" 或者 "兩頭" 附加的條件是:所在縫隙的右側,必須能夠匹配上 ***xx 這部分的表示式。因為它只是在此作為這個縫隙上附加的條件,所以它並不影響後邊的表示式去真正匹配這個縫隙之後的字元。這就類似 "/b",本身不匹配任何字元。"/b" 只是將所在縫隙之前、之後的字元取來進行了一下判斷,不會影響後邊的表示式來真正的匹配。

舉 例1:表示式 "windows (?=nt|xp)

" 在匹配 "windows 98, windows nt, windows 2000" 時,將只匹配 "windows nt" 中的 "windows ",其他的 "windows " 字樣則不被匹配。

舉 例2:表示式 "(/w)

((?=

/1/1/1)

(/1))

+" 在匹配字串 "aaa ffffff 999999999" 時,將可以匹配6個"f"的前4個,可以匹配9個"9"的前7個。這個表示式可以 讀解成:重複4次以上的字母數字,則匹配其剩下最後2位之前的部分。當然,這個表示式可以不這樣寫,在此的目的是作為演示之用。

格式:"(?!***xx)",所在縫隙的右側,必須不能匹配 ***xx 這部分表示式。

舉 例3:表示式 "(

(?!/bstop/b).

)+" 在匹配 "fdjka ljfdl stop fjdsla fdj" 時,將從頭一直匹配到 "stop" 之前的位置,如果字串中沒有 "stop",則匹配整個字串。

舉 例4:表示式 "do(?!/w)

" 在匹配字串 "done, do, dog" 時,只能匹 配 "do"。在本條舉例中,"do" 後邊使用 "(?!/w)" 和使用 "/b" 效果是一樣的。

反向預搜尋

反向預搜尋:"(?<=***xx)","(?(?<=/d)

/d+(?=/d

)" 在匹配 "1234567890123456" 時,將匹配除了前4個數字和後4個數字之外的中間8個數字。

正規表示式摘要

1 貪婪模式 根據匹配字串以及表示式盡可能多的進行匹配,成為貪婪匹配模式 例如 a d 即可以匹配首字母為a的之後的許多數字,這個不進行限制 或者另外一種方法 a d 也可以實現同樣的方法 2 非貪婪模式 根據匹配字串以及表示式盡可能少的進行匹配。使用的方法就是在修飾匹配次數的特殊符號後再加上乙個?...

摘要 正規表示式

正規表示式 regular expression 描述了一種字串匹配的模式 pattern 可以用來檢查乙個串是否含有某種子串 將匹配的子串替換或者從某個串中取出符合某個條件的子串等。除換行符以外的所有字元。字串開頭。字串結尾。d,w,s 匹配數字 字元 空格。d,w,s 匹配非數字 非字元 非空格...

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

非負整數 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...