\d:匹配乙個數字
\w:可以匹配乙個字母或數字,以及下劃線
.:可以匹配任意字元
*:表示任意個數目(包括0個)
+:表示至少乙個
?:表示0個或1個
:表示n個
:表示第m-n個
可以用表示範圍:[0-9a-za-z_]+可以匹配至少由乙個數字、字母或者下劃線組成的字串
a|b:可以匹配a或b,如(p|p)ython可以匹配』python』或者』python』。
^表示行的開頭 ^\d表示必須以數字開頭。
$表示行的結束,\d$表示必須以數字結束。
正則匹配預設是貪婪匹配,也就是預設匹配盡可能多的字串
>>> re.match(r'^(\d+)(0*)$', '102300').groups()
('102300', '')
(\d+)把數字都匹配完了,(0)*只能匹配空字串
加個?可以讓(\d+)採用非貪婪匹配
>>> re.match(r'^(\d+?)(0*)$', '102300').groups()
('1023', '00')
使用正規表示式的時候,re模組內部會做倆件事。
1.編譯正規表示式,如果正規表示式的字串本身不合法,會報錯;
2.用編譯後的正規表示式去匹配字串。
如果乙個正規表示式要重複使用幾千次,出於效率的考慮,可以預編譯該正規表示式,接下來重複使用時就不需要編譯這個步驟了,直接匹配:
>>> import re
# 編譯:
>>> re_telephone = re.compile(r'^(\d)-(\d)$')
# 使用:
>>> re_telephone.match('010-12345').groups()
('010', '12345')
>>> re_telephone.match('010-8086').groups()
('010', '8086')
正規表示式 正規表示式 總結
非負整數 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...
Python正規表示式總結
匹配除換行符意外的任意字元 abc 字元集合,一次只能匹配乙個字元,匹配a b c abc 字元集合,不是a b c a z 小寫字元 a z 不是小寫 b 單詞邊界 b 不匹配單詞邊界 d 0 9 匹配1個數字 d 0 9 不匹配1個數字 s 匹配乙個空白字元.包括製表符 換行符 空格 s 非空白...
Python正規表示式總結
基礎匹配 d 可以匹配乙個數字,00 d 可以匹配 007 w 可以匹配乙個字母或者數字,00 w 可以匹配 007 或者 00a s 可以匹配乙個空格 可以匹配任意字元 匹配變長的字元,可以用 表示任意個字元 包括0個 用 表示至少乙個字元,用?表示0個或者1個字元,用表示n個字元,用表示n m個...