正規表示式

2021-04-14 01:09:50 字數 1451 閱讀 9631

前言

正規表示式,是用乙個表示式去匹配乙個已知的字串,將按照表示式的方式查詢出字串,然後可以進行替換等操作

1,用途

字串匹配(字元匹配),更應該叫做字元匹配,因為是乙個字元乙個字元去匹配,其匹配的結果:能匹配或者不能

字串查詢,是建立在字串匹配的前提下

字串替換,是建立在字串查詢的前提下

2,meta character

. 代表1個字元

? 0個或1個

* 0個或多個

+ 1個或多個

出現n次

至少n次

大於n小於m

/d 1個數字[0-9]

/d 1個非數字[^0-9]

/s 1個空白字元[ /t/n/x0b/f/r] 

/s 1個非空白字元[^/s]

/w 1個構成單詞的字元[a-za-z_0-9]

/w 1個非構成單詞的字元[^/w]

3,範圍

[abc]匹配中括號中abc的乙個字元

[^abc]匹配除了abc的乙個字元

[a-za-z]匹配a-z或a-z中的乙個字元

[a-z&&[rfg]]匹配a-z中並且是rfg三個字母中的乙個字元

4,bound邊界匹配:指開頭和結尾

posix是unix的一套標準,如果程式符合posix標準,都能在所有的unix上執行

^ 一行的開頭

$ 一行的結尾

/b 乙個單詞的邊界

/b 非單詞邊界[^/b]

5,group分組

用途:在匹配的結果中,可以用來指輸出某些部分

用小括號可以用來分組,分組的編號是從左往右數左小括號,數到幾,這個小括號就是第幾組

6,quantilifiers修飾符

greedy quantilifilers 貪婪的

reluctant quantilifilers 不情願的

7,non-capturing非捕獲

(?)小括號中以?開頭的組,叫做非捕獲組

例如regex = ".(?=a)",如果字串為444a66b,匹配的字串為444,而不是444a 

8,示例

篩選郵箱的正規表示式:

([a-za-z0-9_-]+(/./w+)*@(/w+/.)+/w)

篩選**的正規表示式:

篩選網頁中的url的正規表示式:

]+)>([^<]+)

9,如何在vc++6.0環境下應用正規表示式?

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

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

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