正規表示式(regex/re)是一種文字模式,包括普通字元和特殊字元,它是使用單個字串來描述、匹配一系列匹配某個句法規則的字串。
正規表示式最突出的特點就是簡潔,即有「一行勝前言」的功效,尤其是在表達無窮字串組時非常方便。正規表示式在文字處理中十分常用,表達文字型別的特徵(病毒、入侵等),同時查詢或替換一組字串,匹配字串的全部或部分。
正規表示式的使用:
編譯:將符合正規表示式語法的字串轉換成正規表示式特徵。可以認為編譯後的特徵與一組字串是對應的,而編譯前的正規表示式只是乙個符合正規表示式語法的字串。
pn正規表示式:
pynp(y|yt|yth|ytho)?n
pytn
regex = 『p(y|yt|yth|ytho)?n』
pythn
編譯python
p = re.compile(regex)
正規表示式常用的符號:
· 表示任何單個字元;
[ ] 表示字符集,對單個字元給出取值範圍,例如[abc]表示a,b,c;
[^] 表示非字符集,對單個字元給出排除範圍,例如[^abc]表示非a或非b或非c的單個字元;
* 表示前乙個字元0次或無限次擴充套件,例如abc*表示ab.abc.abcc等;
+ 表示前乙個字元1次或無限次擴充套件,例如abc+表示abc,abcc;
? 表示前乙個字元0次或1次擴充套件,例如abc?表示ab,abc;
| 表示左右表示式任意乙個,例如abc|def表示abc,def;
表示擴充套件前乙個字元m次,例如abc表示abbc;
^表示匹配字串開頭,例如^abc表示abc且在乙個字串的開頭;
$表示匹配字串結尾,例如$abc表示abc且在乙個字串的結尾;
表示擴充套件前乙個字元m至n次,例如abc表示abc,abbc;
( ) 表示分組標記,內部只能使用操作符|,例如(abc)表示abc,(abc|def)表示abc,def;
\d表示數字,等價於[0-9];
\w單詞字元,等價於[a-za-z0-9]。
接下來介紹幾個常見的正規表示式:
^[a-za-z]+$表示用26個字母組成的字串;
^-?\d+$表示整數形式的字串;
^[0-9]*[1-9][0-9]*$表示正整數形式的字串;
[\u4e00-\u9fa5]表示匹配中文字元;
\d-\d | \d-\d表示中國境內的固定**號碼;
除此之外,正規表示式也可以用來表示比較複雜的字串,比如ip位址。我們都知道ip位址分四段,每一段的最大值為255,為了表示0-255的值,正規表示式將其分為4段分別表示,如:
0-99:[1-9]?\d
100-199:1\d
200-249:2[0-4]\d
250-255:25[0-5]
(([1-9]?\d | 1\d | 2[0-4]\d | 25[0-5]).)([1-9]?\d | 1\d | 2[0-4]\d | 25[0-5])
正規表示式 正規表示式 總結
非負整數 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正規表示式 編寫正規表示式
為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...