re 庫的 match 物件
re 庫的貪婪匹配和最小匹配
re, regex, regular expression 用簡潔形式表示了一組字串的特徵或模式,通用的字串表達框架。
用前需要編譯,正規表示式由字元和操作符組成。
. 表示任何單個字元
字符集,對單個字元給出取值範圍
[^] 非字符集,對單個字元給出排除範圍
* 前乙個字元0次或者無限次擴充套件
+ 前乙個字元1次或者無限次擴充套件
? 前乙個字元0次或者1次擴充套件
| 左右表示式任意乙個
擴充套件前乙個字元m次
擴充套件前乙個字元m至n次,含n
^ 匹配字串開頭
$ 匹配字串結尾
() 分組標記,內部只能使用|操作符
\d 數字,等價於[0-9]
\w 單個字元,等價於[a-za-z0-9]
^[a-za-z]+$ 由26個字母組成的字串
^[a-za-z0-9]+$ 由26個字母和數字組成的字串
^-?\d$ 整數形式的字串
^[0-9]*[1-9]
[0-9]*$ 正整數形式的字串
[\u4e00-\u9fa5] 匹配中文字元
\d-\d
|\d-\d 國內**號碼,010-68912536
\d.\d.\d.\d
\d.\d.\d,\d
# 不夠準確
255.255.255.255
0-99: [1-9]?[0-9]
[1-9]?\d
100-199: 1[0-9]
1\d200-249: 2[0-4]
[0-9] 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]
)
python 的標準庫 正規表示式的表示型別: 原生字串 raw string : r』text』 原生字串是不包含轉譯字元的字串,當正規表示式包含轉義字元時,使用raw string.
import re
match = re.search(r'[1-8]\d'
,'bit 188888'
)if match:
print
(match.group(0)
)
match = re.match(r'[1-9]\d'
,'bit 100299'
)if match:
pring(match.group(0)
)print
(match.group(0)
)
ls = re.findall(r'[1-9]\d'
,'bit 123456 234567'
)print
(ls)
re.split(r'[1-9]\d'
,'bit 788222 jih 892789 hi'
)
for m in re.finditer(r'[1-9]\d'
,'bit 190290 yub223423'):
if m:
print
(m.group(0)
)
re.sub(r'[1-9]\d'
,':zipcode'
,'bit123456 tsu100022'
)
上述是 函式式用法,一次性操作。 物件導向用法,編譯後多次操作
match 物件,一次匹配的結果
import re
m = re.search(r'[1-9]\d'
,'bij 123456 hui123456'
)if m:
print
(match.group(0)
)print
(m.string)
print
(m.re)
print
(m.pos)
print
(m.endpos)
print
(m.start())
print
(m.end(
),m.span(
))
re 庫預設採用貪婪匹配,即輸出匹配最長的子串。
m = re.search(r'py.*n'
,'pythonnnn'
)if m:
print
(m.group(0)
)
m = re.search(r'py.*?n'
,'pyanbn***n'
)if m:
print
(m.group(0)
)
*? 前乙個字元0次或無限次擴充套件,最小匹配
+? 前乙個字元1次或無限次擴充套件,最小匹配
?? 前乙個字元0次或1次擴充套件,最小匹配
? 擴充套件前乙個字元m 至 n次(含n),最小匹配
Python 正規表示式筆記
python 正規表示式筆記 正規表示式的先行斷言 lookahead 和後行斷言 lookbehind 正規表示式的先行斷言和後行斷言一共有4種形式 pattern 零寬正向先行斷言 zero width positive lookahead assertion pattern 零寬負向先行斷言 ...
Python筆記 正規表示式
1 如果直接給出字元,就是精確匹配。用 d可以匹配乙個數字,w可以匹配乙個字母或數字,可以匹配任意字元 00 d 可以匹配 007 但無法匹配 00a d d d 可以匹配 010 w w d 可以匹配 py3 py.可以匹配 pyc pyo py 2 要匹配變長的字元,在正規表示式中,用 表示任意...
python正規表示式筆記
更新中 正規表示式 regular expression 也簡稱regex,是用於簡潔表達一組字串的表示式。例1 對於字串組 pn pyn pytn pythn python 可以用正規表示式p y yt yth ytho n表示 例2 對於字串組 py pyy pyyy pyyyy pyyyy 可...