正規表示式

2022-05-04 06:36:10 字數 2042 閱讀 4397

'''

正規表示式

''''''

字元組 : 描述的是乙個位置上能出現的所有可能性

接受範圍,可以描述多個範圍,連著寫就可以了

[abc] 乙個中括號只表示乙個字元位置

匹配a或b或c

[0-9] 根據 ascii 進行範圍的比對

[a-z]

[a-z]

①大寫字元a到z的ascii**分別是065到090,字元加一,**加一

②小寫字元a到z的ascii**分別是097到122,依舊是字元加一,**加一

[a-za-z] 大小寫

[0-9a-za-z] 數字大小寫

在正規表示式中能夠幫助我們表示匹配的內容的符號都是正則中的 元字元

[0-9] ==> \d 也可以匹配一位任意數字 digit

[0-9a-za-z] ==> \w 表示數字,字母,下劃線 word

空白(空格|tab|enter) ==> \s 表示所有空白:空格,回車,tab

空格 ==> space

tab ==> \t

enter ==> \n

元字元 ---匹配規則

字元組 : 描述的是乙個位置上能出現的所有可能性

[^] 所有的非字元組

\d 也可以匹配一位任意數字 digit

\w 表示數字,字母,下劃線 word

\s 空白

\t tab

\n enter

\d 非數字

\w 非數字,字母,下劃線

\s 非空白

[\d\d] , [\w\w] ,[\s\s] 匹配所有

[^\d] 表示所有非數字的所有

. 匹配除換行符之外的所有

^ 匹配乙個字串的開始

$ 匹配乙個字串的結尾

| a表示式|b表示式 匹配a或者b表示式中的內容,如果a匹配成功了,不會繼續匹配b表示式了,

所以如果兩個規則有重疊部分,總是把長的放在前面

() 分組 1.約束:描述的內容的範圍問題

例如:匹配 www.jd.com,www.mi.com,www.nba.com

www\.(jd|mi|nba)\.com

''''''

記憶元字元

\d \w \s \t \n \d \w \s

[^] .

^ $

| ()

''''''

量詞: 只能約束前一位的元字元.不能單獨使用

匹配n次

匹配至少n次

匹配至少n次,至多m次

? 匹配0個或1次

+ 匹配1次或者多次

* 匹配0次或者多次

用數軸記憶

? +

0---1------------------------>+∞

*匹配0次

整數 \d+

小數 \d+\.\d+

整數或者小數 \d+(\.\d+)

分組的作用 \d+(\.\d+)?

''''''

11位手機號 1開頭,第二位3-9

^1[3-9]\d&

貪婪匹配

在兩次範圍允許的情況下盡可能多的匹配內容

.*?x 表示任意字元,任意多次,但是遇到最後乙個x才停下來

原因:回溯演算法

非貪婪(惰性)匹配

.*?x 表示任意字元,任意多次,但是一旦遇到x就停下來

元字元 ?

轉義符原本有特殊意義的字元,到了表達它本身的意義的時候,需要轉義

有一些特殊意義的內容,放在字元組中,回取消它的特殊意義

[.][().*+?] 所有的內容在字元組中會取消它的特殊意義

[a\-c] -在字元組中表示範圍,如果不需要表示範圍,需要轉義,或者放在字元組的最前面/最後面

'''

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

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

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