正則表達(dá)式
正則表達(dá)式的作用就是檢查輸入的字符串是否與某種模式相匹配。
1、函數(shù)
基本語句及釋義
(1)re.match(pattern, string, flags=0) :從字符串的起始位置匹配一個(gè)模式,如果不是起始位置匹配成功的話,match() 就返回 none
(2)re.search(pattern, string, flags=0):掃描整個(gè)字符串并返回第一個(gè)成功的匹配
(3)re.sub(pattern, repl, string, count=0, flags=0) :用于替換字符串中的匹配項(xiàng)
(4)re.compile(pattern, flags]) compile函數(shù):用于編譯正則表達(dá)式,生成一個(gè)正則表達(dá)式(Pattern)對(duì)象,供match()和search()這兩個(gè)函數(shù)使用。
(5)re.findall(string,pos, endpos): 在字符串中找到正則表達(dá)式所匹配的所有子串,并返回一個(gè)列表,如果有多個(gè)匹配模式,則返回元組列表,如果沒有找到匹配的,則返回空列表。
(6)re.split(pattern, string, maxsplit=0, flags=0) :按照能夠匹配的子串將字符串分割后返回列表
一些常見的修飾符及相關(guān)描述:
re.I 使匹配對(duì)大小寫不敏感
re.L 做本地化識(shí)別(locale-aware)匹配
re.M 多行匹配,影響 ^ 和 $
re.S 使 . 匹配包括換行在內(nèi)的所有字符
re.U 根據(jù)Unicode字符集解析字符。這個(gè)標(biāo)志影響 \w, \W, \b, \B.
re.X 該標(biāo)志通過給予你更靈活的格式以便你將正則表達(dá)式寫得更易于理解。
1.1 re.match函數(shù)

輸出結(jié)果為:

1.2 re.search 函數(shù)

輸出結(jié)果為:

search()函數(shù)和match()的使用方法類似,唯一的區(qū)別就是match()函數(shù)只能從字符串的開始位置匹配成功才返回匹配對(duì)象,否則為None,而search()可以從任意位置匹配,直到第一次匹配到。
1.3 re.sub 函數(shù)

輸出結(jié)果為:

1.4 re.compile 函數(shù)

輸出結(jié)果為:

1.5 re.findall 函數(shù)

輸出結(jié)果為:

1.6 re.spilt函數(shù)

輸出結(jié)果為:

2、正則表達(dá)的運(yùn)用
2.1匹配電話號(hào)碼

其中:聯(lián)通號(hào)碼開頭一般為:130 131 132 145 146 155 156 166 167 171 175 176 185 186 196
電信號(hào)碼的開頭一般為: 133 149 153 173 174 177 180 181 189 191 193 199
移動(dòng)號(hào)碼的格式有:
134 135 136 137 138 139 147 148 150 151 152 157 158 159 172 178 182 183 184 187 188 195 198以聯(lián)通的檢驗(yàn)語句為例:“^13[0-2]|14[56]|15[56]|16[67]|17[156]|18[56]|196\d{8}$”:以13開頭的有130,131,132,“|”這個(gè)符號(hào)的意思為或者,以此后面的意思為14開頭的有145,146,以此類推。
2.2 匹配qq號(hào)碼
