obj是什么意思_为什么要学正则表达式 - 3
生活随笔
收集整理的這篇文章主要介紹了
obj是什么意思_为什么要学正则表达式 - 3
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在處理正字符串的時候,經常會有一些復雜規則的字符串需求,
正則表達式就是描述這些規則的公工具。
換句話說。
正則表達式就是記錄文本規則的代碼。
前兩期我們說了相對簡單的行定位符
為什么要學正則表達式 - 1
和元字符
為什么要學正則表達式 - 2
今天我們來看看正則表達式中的那些限定符
在講限定符之前我們首先來看一下元字符w的使用方法
元字符w
defw的意思是匹配字母數字和下劃線,當有多個字母數字或者下劃線的時候我們再用w就不能判斷出來了,這時候就需要使用w*了。
def match_str(string):regex_str = 'samew*some' #匹配規則match_regex = re.match(regex_str, string)if match_regex:print('match!')else:print('not match')if __name__ == '__main__':match_str('same123456789some') #進行匹配的字符串 #match在上面的例子中,使用(w*)可以匹配任意數量的數字或者字母,如果在實際開發環境中需要匹配特定的數量的數字時要怎么辦呢?如需要匹配18位的身份證號呢?
這時候就需要引入今天的主角限定符了!
限定符
什么是限定符呢?
限定符用來指定正則表達式的一個給定組件必須要出現多少次才能滿足匹配。有 * 或 + 或 ? 或 {n} 或 {n,} 或 {n,m} 共6種。
常見的限定符如下:
例如咱們匹配一個9位數字的QQ號:
def match_str(string):regex_str = '^d{9}$' #匹配規則match_regex = re.match(regex_str, string)if match_regex:print('match!')else:print('not match')if __name__ == '__main__':match_str('570607808') #進行匹配的9位QQ號 #match例如咱們匹配一個g后面不是u的words列表。
words= ['gold', 'Google', 'Sogu', 'Guess'] regex_str = re.compile('.*g[^u]') #‘.’匹配任意一個字符,'*'匹配0個或多個字符,g后面不是ufor s in words:match_obj = re.match(regex_str, s)if match_obj:print(s) #gold #Google再看一組例子,咱們匹配第一位是1-5的數字,第二位是0-9的數字
patt='[1-5][0-9]' #匹配第一位是1-5的數字,第二位是0-9的數字 list=[10,20,30,40,2,3,59,60,'aa','3aaa'] match=re.findall(patt,str(list))if match:print(match) #['10', '20', '30', '40', '59']匹配1-9之間的數字,且這個數字只能出現3次
patt=re.compile('([1-9]{3})') #匹配1-9之間的數字,且這個數字只能出現3次 string = '123,abc666,45d,7778,a8b9c7' match=re.findall(patt,string)if match:print(match) #['123', '666', '777']好了,今天分享到此結束。明天咱們繼續!
總結
以上是生活随笔為你收集整理的obj是什么意思_为什么要学正则表达式 - 3的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux误删文件咋恢复,恢复Linux
- 下一篇: 服务器需要指定dns吗,Windows