正規表示式

2021-09-05 19:20:50 字數 1416 閱讀 6791

正規表示式:用來檢索、替換那些符合某個規則的文字。

這個之前可能也見過,用過,但都是參考別人的,並不是很確定到底是幹什麼用的。

它是對字串(字元和元字元)操作的一種邏輯公式,用事先定義好的一些特定字元、及這些字元的組合,組成乙個「規則字串」,這個「規則字串」用來表達對字串的一種過濾邏輯。它是一種文字模式,模式描述在搜尋文字時要匹配的乙個或多個字串。

使用正規表示式的目的:

給定的字串是否符合正規表示式的過濾邏輯;

通過正規表示式,從字串中獲取我們想要的特定部分。

下面看一下幾個常用的元字元和對它們的乙個簡短的描述:

元字元描述

將下乙個字元標記符、或乙個向後引用、或乙個八進位制轉義符。例如,「\\n」匹配\n。「\n」匹配換行符。序列「\\」匹配「\」而「\(」則匹配「(」。即相當於多種程式語言中都有的「轉義字元」的概念。

匹配輸入字行首。如果設定了regexp物件的multiline屬性,^也匹配「\n」或「\r」之後的位置。

匹配輸入行尾。如果設定了regexp物件的multiline屬性,$也匹配「\n」或「\r」之前的位置。

匹配前面的子表示式任意次。例如,zo*能匹配「z」,也能匹配「zo」以及「zoo」。*等價於。

匹配前面的子表示式一次或多次(大於等於1次)。例如,「zo+」能匹配「zo」以及「zoo」,但不能匹配「z」。+等價於。 

\b匹配乙個單詞的邊界,也就是指單詞和空格間的位置(即正規表示式的「匹配」有兩種概念,一種是匹配字元,一種是匹配位置,這裡的\b就是匹配位置的)。例如,「er\b」可以匹配「never」中的「er」,但不能匹配「verb」中的「er」;「\b1_」可以匹配「1_23」中的「1_」,但不能匹配「21_3」中的「1_」。

\d匹配乙個數字字元。等價於[0-9]。grep 要加上-p,perl正則支援

\d匹配乙個非數字字元。等價於[^0-9]。grep要加上-p,perl正則支援

\f匹配乙個換頁符。等價於\x0c和\cl。

\n匹配乙個換行符。等價於\x0a和\cj。

\r匹配乙個回車符。等價於\x0d和\cm。

推出來的幾個常用的:

[^,] 

除了逗號之外的任何字元

[^,]* 

0或者多個非逗號字元

([^,]*)

將這些非逗號字元標記為\1,這樣可以在之後的替換模式表示式中引用它

([^,]*),

0或者多個非逗號字元後面跟著乙個逗號,並且非逗號字元那部分要標記出來以備後用。

正則字串 = "開始([包含內容])([包含內容])([包含內容])結束" 

例項:字串;tel:086-0666-88810009999

正則寫法:"^tel:\d-[0]\d-\d$" 

以後用到需要對字元進行匹配操作的時候可以考慮用正規表示式,雖然剛開始用著可能不簡單,但用過之後,它真的特別方便。

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

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

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