python學習 正規表示式

2021-08-06 06:12:49 字數 1941 閱讀 2658

1,\d可以匹配乙個數字,\w可以匹配乙個字母或數字

『00\d』可以匹配』007』,但無法匹配』00a』;

『\d\d\d』可以匹配』010』;

『\w\w\d』可以匹配』py3』;

2,.可以匹配任意字元

『py.』可以匹配』pyc』、』pyo』、』py!』等等。

3,*表示任意個字元(包括0個),用+表示至少乙個字元,用?表示0個或1個字元,用表示n個字元,用表示n-m個字元

\d\s+\d。

\d表示匹配3個數字,例如』010』;

\s可以匹配乙個空格(也包括tab等空白符),所以\s+表示至少有乙個空格,例如匹配』 『,』 『等;

\d表示3-8個數字,例如』1234567』。

4,用表示範圍

[0-9a-za-z_]可以匹配乙個數字、字母或者下劃線;

[0-9a-za-z_]+可以匹配至少由乙個數字、字母或者下劃線組成的字串,比如』a100』,』0_z』,』py3000』等等;

[a-za-z_][0-9a-za-z_]*可以匹配由字母或下劃線開頭,後接任意個由乙個數字、字母或者下劃線組成的字串,也就是python合法的變數;

[a-za-z_][0-9a-za-z_]更精確地限制了變數的長度是1-20個字元(前面1個字元+後面最多19個字元)。

5,a|b可以匹配a或b

(p|p)ython可以匹配』python』或者』python』

6,^表示行的開頭

^\d表示必須以數字開頭

7,$表示行的結束

\d$表示必須以數字結束

1,使用r字首,就可以不考慮轉義

s = r』abc-001』 匹配 『abc-001』

s = 『abc\-001』 匹配 『abc-001』

2,判斷是否匹配成功

test = 『使用者輸入的字串』

if re.match(r』正規表示式』, test):

print(『ok』)

else:

print(『failed』)

3,切分字串

普通方法:』a b c』.split(』 『) 結果:[『a』, 『b』, 」, 」, 『c』]

正規表示式:re.split(r』\s+』, 『a b c』) 結果:[『a』, 『b』, 『c』]

4,提取子串,用()表示的就是要提取的分組(group)

m = re.match(r』^(\d)-(\d)$』, 『010-12345』)

m.group(0) ==> 『010-12345』

m.group(1) ==> 『010』

m.group(2) ==>』12345』

group(0)永遠是原始字串,group(1)、group(2)……表示第1、2、……個子串

5,正則匹配預設是貪婪匹配,也就是匹配盡可能多的字元

re.match(r'^(\d+)(0*)$', '102300').groups()==>(『102300』, 」)

加個?就可以讓\d+採用非貪婪匹配

re.match(r'^(\d+?)(0*)$', '102300').groups()==>(『1023』, 『00』)

參考廖雪峰的官方**的python教程

Python 正規表示式學習(二)正規表示式語法

一,單一字元匹配 1 匹配任意字元 import re res re.match r a.abcd print res.group 列印結果 abc一點.表示匹配任意的字元。上面的 表示匹配a後面的任意兩個字元。必須從a開始。若寫成 b.則會發生錯誤。2 匹配指定字元 如 0 9a za z 表示 ...

python正規表示式學習

今天學習了python中有關正規表示式的知識。關於正規表示式的語法,不作過多解釋,網上有許多學習的資料。這裡主要介紹python中常用的正 則表示式處理函式。re.match 嘗試從字串的開始匹配乙個模式,如 下面的例子匹配第乙個單詞。import re text jgood is a handso...

python正規表示式學習

python 中的re 模組 正規表示式 就個人而言,主要用它來做一些複雜字串分析,提取想要的資訊 學習原則 夠用就行,需要的時候在深入 現總結如下 正規表示式中特殊的符號 表任意字元 表string起始 表string 結束 跟在字元後面表示,0個 多個,1個 多個,0個或者1個 符合條件的情況下...