obj是什么意思_为什么要学正则表达式 - 3
在處理正字符串的時(shí)候,經(jīng)常會(huì)有一些復(fù)雜規(guī)則的字符串需求,
正則表達(dá)式就是描述這些規(guī)則的公工具。
換句話說(shuō)。
正則表達(dá)式就是記錄文本規(guī)則的代碼。
前兩期我們說(shuō)了相對(duì)簡(jiǎn)單的行定位符
為什么要學(xué)正則表達(dá)式 - 1
和元字符
為什么要學(xué)正則表達(dá)式 - 2
今天我們來(lái)看看正則表達(dá)式中的那些限定符
在講限定符之前我們首先來(lái)看一下元字符w的使用方法
元字符w
defw的意思是匹配字母數(shù)字和下劃線,當(dāng)有多個(gè)字母數(shù)字或者下劃線的時(shí)候我們?cè)儆脀就不能判斷出來(lái)了,這時(shí)候就需要使用w*了。
def match_str(string):regex_str = 'samew*some' #匹配規(guī)則match_regex = re.match(regex_str, string)if match_regex:print('match!')else:print('not match')if __name__ == '__main__':match_str('same123456789some') #進(jìn)行匹配的字符串 #match在上面的例子中,使用(w*)可以匹配任意數(shù)量的數(shù)字或者字母,如果在實(shí)際開(kāi)發(fā)環(huán)境中需要匹配特定的數(shù)量的數(shù)字時(shí)要怎么辦呢?如需要匹配18位的身份證號(hào)呢?
這時(shí)候就需要引入今天的主角限定符了!
限定符
什么是限定符呢?
限定符用來(lái)指定正則表達(dá)式的一個(gè)給定組件必須要出現(xiàn)多少次才能滿足匹配。有 * 或 + 或 ? 或 {n} 或 {n,} 或 {n,m} 共6種。
常見(jiàn)的限定符如下:
例如咱們匹配一個(gè)9位數(shù)字的QQ號(hào):
def match_str(string):regex_str = '^d{9}$' #匹配規(guī)則match_regex = re.match(regex_str, string)if match_regex:print('match!')else:print('not match')if __name__ == '__main__':match_str('570607808') #進(jìn)行匹配的9位QQ號(hào) #match例如咱們匹配一個(gè)g后面不是u的words列表。
words= ['gold', 'Google', 'Sogu', 'Guess'] regex_str = re.compile('.*g[^u]') #‘.’匹配任意一個(gè)字符,'*'匹配0個(gè)或多個(gè)字符,g后面不是ufor s in words:match_obj = re.match(regex_str, s)if match_obj:print(s) #gold #Google再看一組例子,咱們匹配第一位是1-5的數(shù)字,第二位是0-9的數(shù)字
patt='[1-5][0-9]' #匹配第一位是1-5的數(shù)字,第二位是0-9的數(shù)字 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之間的數(shù)字,且這個(gè)數(shù)字只能出現(xiàn)3次
patt=re.compile('([1-9]{3})') #匹配1-9之間的數(shù)字,且這個(gè)數(shù)字只能出現(xiàn)3次 string = '123,abc666,45d,7778,a8b9c7' match=re.findall(patt,string)if match:print(match) #['123', '666', '777']好了,今天分享到此結(jié)束。明天咱們繼續(xù)!
總結(jié)
以上是生活随笔為你收集整理的obj是什么意思_为什么要学正则表达式 - 3的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: linux误删文件咋恢复,恢复Linux
- 下一篇: 电子科大16秋计算机应用基础在线作业一,