import re
#re.match(正規表示式,需要處理的字串)
re.match(r'hello'
,'hello world'
)
如果有返回值那麼就說明滿足使用者的需求規範,如果沒有返回值,那就沒有使用者需要的需求規範
re.match(r'[hh]ello'
,'hello world'
)
說明:加上中括號,可以擴大需求規範,這樣在使用者輸入大寫或小寫都可以獲得乙個返回值
正規表示式中符號意義:
. 匹配任意乙個字元(除了\n)
匹配中例舉的字元
\d 匹配數字,即0-9
\d 匹配非數字,即不是數字
\s 匹配空白,即空格,tab鍵
\s 匹配非空白
\w 匹配單詞字元,即a-z,a-z,0-9
\w 匹配非單詞字元
「 * 」 匹配前乙個字元出現0次或者無限次,即可有可無
「 + 」 匹配前乙個字元出現1次或者無限次,即至少有1次
? 匹配前乙個字元出現1次或者0次,即要麼有1次,要麼沒有
匹配前乙個字元出現m次
匹配前乙個字元出現從m到n次
^ 匹配字串開頭
$ 匹配字串結尾
| 匹配左右任意乙個表示式
(ab) 將括號中字元作為乙個分組
\num 引用分組num匹配到的字串
(?p) 分組起別名
(?p=name) 引用別名為name分組匹配到的字串
做判斷要以^開頭,以$結尾
如果遇到郵箱一類的需要輸入特殊符號的,可在特殊符號之前加上\進行轉義
ret = re.match(r'hello\d'
,'hello1111111'
)#結果:hello1
#找乙個變數將使用者輸入存起來
#乙個\d就只能取乙個關鍵字,後邊就不會在取
ret.group(
)#使用group調出使用者所輸入的資料
資料細化:
ret = re.match(r'hello[1-8]'
,'hello2'
)#說明:在取hello時,最多只能取1-8超出會返回none
#指針對連續
ret = re.match(r'hello[1-36-8]'
,'hello1'
)#表示1-3,6-8
#需要什麼條件就在中括號中直接加條件即可
#但是後邊必須滿足前邊的規範
多個字元匹配:
re.match(r'hello\d'
,'hello12'
)#說明:乙個\d只能占有乙個字元,如果使用者輸入超過規定,那麼就會報錯,後面的大括號就代表使用者最多可以輸入幾位
關於「?」
re.match(r'021-?\d'
,'021-12345678'
)#說明:關於?,意思為問號前邊可以有乙個,也可以沒有
郵箱判斷:
re.match(r'^[a-za-z0-9]@(163|qq|icloud)\.com$'
)# 如果出現多個郵箱區別,用|來隔開,代表「或」,但注意隔離區間使用()括起來
分組:
re.match(r'([a-z])@(163)\.com'
)group(1)
#當我們在group的括號中新增數字,則表示要取出的內容,取出內容的範圍就是表示式小括號的內容
re.match(r'<(\w*)>.*',''
)#說明:\1代表取第乙個分組中的要求
re.match(r'<(?p\w*)><(?p\w*)>.*',''
)group(
)#說明:使用(?p)命名規則,將分組命名為p1分組和p2分組,然後使用(?p=name)調取
python正規表示式元字元 正規表示式
字元 描述將下乙個字元標記為乙個特殊字元 或乙個原義字元 或乙個 向後引用 或乙個八進位制轉義符。例如,n 匹配字元 n n 匹配乙個換行符。序列 匹配 而 則匹配 匹配輸入字串的開始位置。如果設定了 regexp 物件的 multiline 屬性,也匹配 n 或 r 之後的位置。匹配輸入字串的結束...
Python 正規表示式
1.在python中,所有和正規表示式相關的功能都包含在re模組中。2.字元 表示 字串的末尾 如 road 則表示 只有當 road 出現在乙個字串的尾部時才會匹配。3.字元 表示 字元中的開始 如 road 則表示 只有當 road 出現在乙個字串的頭部時才會匹配。4.利用re.sub函式對字串...
Python正規表示式
學習python自然而然就不得不面對正規表示式這個難題。當初在沒有學習python之前,自己也曾經嘗試著學習過正規表示式,但是那時候感覺很麻煩,很難懂,結果就是不了了之。但是現在學習python我用的書是 python基礎教程 第二版 這本書中對re模組的講解很簡單易懂,內容不多但起碼把人領進門了,...