字元組 []: 描述的是乙個位置上能出現的所有可能性
接受範圍,可以描述多個範圍,連著寫就可以了
[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正規表示式 編寫正規表示式
為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...