前言
正規表示式,是用乙個表示式去匹配乙個已知的字串,將按照表示式的方式查詢出字串,然後可以進行替換等操作
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正規表示式 編寫正規表示式
為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...