正規表示式

2021-08-14 18:47:49 字數 1492 閱讀 2328

正規表示式(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正規表示式 編寫正規表示式

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