Python基礎知識(24):正規表示式
正規表示式:檢查一個字串是否與某個模式匹配
d :匹配數字
w :匹配字母或數字
. :匹配任意字元
{n} :匹配n個字元
{m,n} :匹配m到n個字元
s :匹配空格
a|b :匹配a或b
^ :匹配字串開頭
$ :匹配字串結尾
* :匹配0個或多個
+ :匹配1個或多個
? :匹配0個或1個
[abc] :匹配a、b或c
[^abc] :匹配除了a、b、c以外的
re模組:包含正規表示式的所有功能
建議使用Python的r
字首,如r‘d’
由於Python的字串本身也用轉義,所以要特別注意
1、match:匹配字串
import re
m = re.match(r`d{3}-d{3,8}`,r`010-23456`) print(m)
結果:
<_sre.SRE_Match object; span=(0, 9), match=`010-23456`>
2、search:掃描
import re s = re.search(r`(.com)`,r`someone@gmail.com`) print(s) 結果: <_sre.SRE_Match object; span=(13, 17), match=`.com`>
3、split:切分字元
import re s = re.split(r`[,]`,r`hello,world`) print(s) 結果: [`hello`, `world`]
4、sub:替換
import re sen = `Hello2018, 12world06.` sen1 = re.sub(r`d`, ``, sen) print(sen1) 結果: Hello, world.
5、group:分組
import re sen = re.match(r`^(d{3})-(d{3,8})$`, `010-23456`) print(sen.group(0)) print(sen.group(1)) print(sen.group(2)) 結果: 010-23456 010 23456
驗證Email地址的正規表示式
#驗證Email地址的正規表示式 import re sen1 = r`someone@gmail.com` sen2 = r`bill.gates@microsoft.com` sen3 = r`bob#example.com` sen4 = r`mr-bob@example.com` m = r`[w.]+@[w]+.(com)` print(re.match(m,sen1)) print(re.match(m,sen2)) print(re.match(m,sen3)) print(re.match(m,sen4)) 結果: <_sre.SRE_Match object; span=(0, 17), match=`someone@gmail.com`> <_sre.SRE_Match object; span=(0, 24), match=`bill.gates@microsoft.com`> None None
資料來源:
1、廖雪峰官網:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/00143193331387014ccd1040c814dee8b2164bb4f064cff000
2、菜鳥教程:http://www.runoob.com/python3/python3-reg-expressions.html