python五十七課——正則表達式(多個字符)
阿新 • • 發佈:2019-03-10
就是 精確 註意 aaaaa 分類 int aaa style 字符
演示匹配多個字符:
以下x、y、n都是變量名:
分類:
1).模糊匹配:
x?:表示0個或者1個 取值範圍:[0,1]
x+:表示1個或者多個 取值範圍:[1,無窮大)
x*:表示0個或者多個 取值範圍:[0,無窮大)
【註意】
以上三種符號(?、+、*)都滿足貪婪匹配的特點,
意味著在匹配的前提下,盡可能多的返回數據
思考:如果取消貪婪行為? --> 達到的效果就是在匹配的前提下,盡可能少的返回數據
代碼體現:在正則的最後顯示的定義一個?即可
2).精確匹配:
n{x}:n匹配x次
n{x,}:n最少有x次,最多無窮大 範圍:[x,無窮大)
n{x,y}:n最少有x次,最多有y次 範圍:[x,y]
import re str1=‘bbbbbbbbbbbcccbbbb‘ print(re.search(r‘b?‘,str1).group()) print(re.search(r‘b??‘,str1).group()) print(re.search(r‘b+‘,str1).group()) print(re.search(r‘b+?‘,str1).group()) print(re.findall(r‘b?‘,str1)) print(re.findall(r‘b?‘,str1)) print(re.findall(r‘b+‘,str1)) print(re.findall(r‘b+?‘,str1))print(re.findall(r‘b*‘,str1)) print(re.findall(r‘b*?‘,str1)) #需求:嘗試匹配內容:hank ... man str1=‘hank is a good man hank is a nice man hank is a cool man‘ regex=r‘hank.*man‘ # regex=r‘hank.*?man‘ lt=re.findall(regex,str1) print(lt) print(re.search(regex,str1).group()) print(‘實現精準匹配...‘) str1=‘aaaabbbaaaaaaaaaaaa‘ print(re.findall(r‘a{3}‘,str1)) print(re.findall(r‘a{3,}‘,str1)) print(re.findall(r‘a{3,}?‘,str1)) print(re.findall(r‘a{6,8}‘,str1)) print(re.findall(r‘a{6,8}?‘,str1))
python五十七課——正則表達式(多個字符)