精確匹配:
\d: 匹配一個數字
\w: 匹配一個字母或數字
. : 匹配任意一個字符
\s: 匹配一個空格(包括tab等空白符)
匹配變長的字符:
* : 匹配任意個字符,包括0個
+ : 匹配至少一個字符
? : 匹配0個或一個字符
{n} : 匹配n個字符
{n,m} : 匹配n~m個字符
eg: 說明“\d{3}\s+\d{2,5}”的含義
\d{3}: 表示匹配3個數字,例如'028'
\s+: 表示匹配至少一個空格
\d{2,5}: 表示匹配2~5個數字,例如'1245'
比如可以匹配以任意個空格隔開區號的電話號碼。例如'028 57652'
[] :用來表示范圍
[0-9a-zA-Z\_]: 可以匹配一個數字、大小寫字母或者下划線
[0-9a-zA-Z\_]+: 可以匹配至少由一個數字、大小寫字母或者下划線組成的字符串
eg: 'a54', 'fasd', 'who_lj123'...
[a-zA-Z\_][0-9a-zA-Z\_]*: 可以匹配由字母或下划線開頭,后邊任意個有數字、字母或者下划線組成的字符串,即python的合法變量名
[a-zA-Z\_][0-9a-zA-Z\_]{0, 19}: 更精確地限制了變量的長度是1-20個字符
a|b: 匹配a或者b
eg: (P|p)ython: 可以匹配'Python'或者'python'
^: 匹配行首
eg: ^\d: 表示行必須以數字開頭
$: 匹配行尾
eg: $\d: 表示行必須以數字結尾
^SOME_STR$: 匹配只包含SOME_STR的行
python中的正則表達式模塊是re
match()方法判斷是否匹配,如果匹配成功,返回一個Match對象,否則返回None。常見的判斷方法就是:
test = '用戶輸入的字符串'
if re.match(r'正則表達式', test):
print('ok')
else:
print('failed')
切分字符串:
re.split(r'\s+', 'TEST_STR'): 指定分隔符為空格
re.split(r'[\s\,\;]+', 'TEST_STR'): 指定分隔符為空格、逗號或者分號
