正規表示式

2022-05-15 09:12:54 字數 2324 閱讀 3146

1.非列印字元\f \n \t \v \s \s

\f     匹配乙個換頁符

\n 匹配乙個換行符

\t 匹配乙個水平製表符

\v 匹配乙個垂直製表符

\r 匹配乙個回車符

\s 匹配任何空白字元,包括空格、製表符、換頁符等。 等價於[ \f\n\t\v\r] 注意\f前面有個空格。

\s 匹配任何非空白字元。等價於[^ \f\n\t\v\r]

2.限定符,限定符用來指定正規表示式的乙個給定元件必須要出現多少次才能滿足匹配。有*或+或?或或或或共7種。

*     匹配前面的子表示式零次或多次。

+ 匹配前面的子表示式一次或多次。

? 匹配前面的子表示式零次或一次。

匹配確定的 n 次。n是乙個非負整數。

至少匹配n 次。n是乙個非負整數。

至多匹配m次。m是乙個非負整數。

最少匹配 n 次且最多匹配 m 次。n和m均為非負整數,其中n <= m。

3.定位符使您能夠將正規表示式固定到行首或行尾。它們還使您能夠建立這樣的正規表示式,這些正規表示式出現在乙個單詞內、在乙個單詞的開頭或者乙個單詞的結尾。

^       匹配輸入字串開始的位置。

$ 匹配輸入字串結尾的位置。

^$ 匹配空白行

\b 匹配乙個字邊界,即字與空格間的位置。\《為左邊界,\>為右邊界

\b 非字邊界匹配。

4.特殊字元就是一些有特殊含義的字元。

( )     標記乙個子表示式的開始和結束位置。子表示式可以獲取供以後使用。要匹配這些字元,請使用 \( 和 \)。

. 匹配除換行符 \n之外的任何單字元。要匹配 .,請使用 \。

標記乙個中括號表示式的開始和結束。要匹配 [ ],請使用 \[ 、\]

\ 將下乙個字元標記為或特殊字元、或原義字元、或向後引用、或八進位制轉義符。例如, 'n

' 匹配字元 '

n'。'

\n' 匹配換行符。序列 '

\\' 匹配 "

\",而 '\(' 則匹配

"("。

^ 匹配輸入字串的開始位置,除非在方括號表示式中使用,此時它表示不接受該字元集合。要匹配 ^ 字元本身,請使用 \^。

標記限定符表示式的開始和結束

| 指明兩項之間的乙個選擇。要匹配 |,請使用 \|。

5.選擇和反向引用

用圓括號將所有選擇項括起來,相鄰的選擇項之間用|分隔。但用圓括號會有乙個***,是相關的匹配會被快取,此時可用?:放在第乙個選項前來消除這種***。

其中?:是非捕獲元之一,還有兩個非捕獲元是?=和?!,這兩個還有更多的含義,前者為正向預查,在任何開始匹配圓括號內的正規表示式模式的位置來匹配搜尋字串,後者為負向預查,在任何開始不匹配該正規表示式模式的位置來匹配搜尋字串。

對乙個正規表示式模式或部分模式兩邊新增圓括號將導致相關匹配儲存到乙個臨時緩衝區中,所捕獲的每個子匹配都按照在正規表示式模式中從左到右出現的順序儲存。緩衝區編號從

1 開始,最多可儲存 99 個捕獲的子表示式。每個緩衝區都可以使用 '\n'

訪問,其中 n 為乙個標識特定緩衝區的一位或兩位十進位制數。

可以使用非捕獲元字元 '?:

'、'?=

' 或 '?!'

來重寫捕獲,忽略對相關匹配的儲存。

反向引用的最簡單的、最有用的應用之一,是提供查詢文字中兩個相同的相鄰單詞的匹配項的能力。

6. 運算子優先順序正規表示式從左到右進行計算,並遵循優先順序順序,這與算術表示式非常類似。相同優先順序的從左到右進行運算,不同優先順序的運算先高後低。下表從最高到最低說明了各種正規表示式運算子的優先順序順序:

\                                   轉義符

(), (?:), (?=), 圓括號和方括號

*, +, ?, , , , 限定符

^, $, \,任何元字元、任何字元 定位點和序列(即:位置和順序)

| 替換,"

或"操作字元具有高於替換運算子的優先順序

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

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

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