Python基礎語法 - 正則表達式
正則表達式是一個特殊的字符序列,它常常用於檢查是否與某種模式匹配。第八節課主要介紹了從以下幾方面介紹了Python正則表達式的用法。
(1)re模塊的使用
(2)字符匹配、數量表示、邊界表示
(3)正則表達式的高級用法
(4)貪婪與非貪婪模式
re模塊
(一)match(正則表達式,待匹配字符串)
(1)采用從左向右逐項匹配,從起始位置起。
(2)用於正則匹配檢查,如果“待匹配字符串”能夠匹配“正則表達式”,則match方法返回匹配對象,否則返回None
import re #導入re模塊 #從起始位置開始匹配 rs = re.match("51cto", "51cto.com") print(rs) #不從起始位置開始匹配 rs = re.match("cn", "51cto.com")
運行結果:
<_sre.SRE_Match object at 0x02B33FA8>
None
(二)group()方法 :用來返回字符串的匹配部分
import re
rs = re.match("51cto", "51cto.com")
print(rs.group())
運行結果:
51cto
字符匹配、數量表示、邊界表示
(一)單字符匹配
(1). 匹配除"\n"之外的任意單個字符
import re rs = re.match(".","a") print(rs.group()) rs = re.match(".","1") print(rs.group()) rs = re.match("...","abc") #多個字符 print(rs.group()) rs = re.match(".","\n") #\n字符 print(rs)
運行結果:
a
1
abc
None
(2)\s:匹配任意空白字符,如空格,制表符“\t”,換行符“\n”
import re
rs = re.match("\s","\t")
print(rs)
rs = re.match("\s","\n")
print(rs)
rs = re.match("\s"," ")
print(rs)
(3)\S:匹配任意非空字符;和\s模式相反
rs = re.match("\S","\t")
print(rs)
rs = re.match("\S","abc") #匹配單個字符,從起始位置
print(rs.group())
運行結果:
None
a
其他單字符匹配用法不一一列舉。
(1)* 出現次數 n >= 0
import re
rs = re.match("1\d*", "1234567") #起始是1,後面int出現任意次
print(rs.group())
rs = re.match("1\d*", "1234567abc") #起始是1,後面int出現任意次
print(rs.group())
運行結果:
1234567
1234567
(三)邊界表示
(1)字符串與單詞邊界
(2)匹配分組
正則表達式的高級用法
貪婪與非貪婪模式
作業題
奶茶館價格結算系統優化:
1、 使用正則表達式判斷顧客輸入的手機號是否符合手機號設置規則:
1) 以數字 1 開頭
2) 第二位為 3578 中的任意數字
3) 其余 9 位為 0-9 任意數字
2、 輸出手機號運營商,判斷規則:
? 移動運營商:手機號前三位為 134、135、136、137、138、139、150、151、152、157、 158、159、178、182、183、184、187、188
? 聯通運營商:手機號前三位為 130、131、132、155、156、176、185、186
? 電信運營商:手機號前三位為 133、153、173、177、180、181、189、199
3、 使用正則表達式判斷輸入奶茶編號,如果不在 1-5 範圍內,輸出: Woops!我們只售賣以上五種奶茶哦!新口味敬請期待! 並將判斷過程設置為類中的方法。
Python基礎語法 - 正則表達式