亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Python re模塊介紹

系統(tǒng) 1920 0

Python中轉(zhuǎn)義字符

正則表達(dá)式使用反斜杠” \ “來(lái)代表特殊形式或用作轉(zhuǎn)義字符,這里跟Python的語(yǔ)法沖突,因此,Python用” \\\\ “表示正則表達(dá)式中的” \ “,因?yàn)檎齽t表達(dá)式中如果要匹配” \ “,需要用\來(lái)轉(zhuǎn)義,變成” \\ “,而Python語(yǔ)法中又需要對(duì)字符串中每一個(gè)\進(jìn)行轉(zhuǎn)義,所以就變成了” \\\\ “。
上面的寫法是不是覺(jué)得很麻煩,為了使正則表達(dá)式具有更好的可讀性,Python特別設(shè)計(jì)了原始字符串(raw string),需要提醒你的是,在寫文件路徑的時(shí)候就不要使用raw string了,這里存在陷阱。raw string就是用'r'作為字符串的前綴,如 r”\n”:表示兩個(gè)字符”\”和”n”,而不是換行符了。Python中寫正則表達(dá)式時(shí)推薦使用這種形式。

正則表達(dá)式元字符說(shuō)明

          
.  匹配除換行符以外的任意字符
^  匹配字符串的開(kāi)始
$  匹配字符串的結(jié)束
[] 用來(lái)匹配一個(gè)指定的字符類別
?  對(duì)于前一個(gè)字符字符重復(fù)0次到1次
*  對(duì)于前一個(gè)字符重復(fù)0次到無(wú)窮次
{} 對(duì)于前一個(gè)字符重復(fù)m次
{m,n} 對(duì)前一個(gè)字符重復(fù)為m到n次
\d 匹配數(shù)字,相當(dāng)于[0-9]
\D 匹配任何非數(shù)字字符,相當(dāng)于[^0-9]
\s 匹配任意的空白符,相當(dāng)于[ fv]
\S 匹配任何非空白字符,相當(dāng)于[^ fv]
\w 匹配任何字母數(shù)字字符,相當(dāng)于[a-zA-Z0-9_]
\W 匹配任何非字母數(shù)字字符,相當(dāng)于[^a-zA-Z0-9_]
\b 匹配單詞的開(kāi)始或結(jié)束
        

模塊函數(shù)說(shuō)明即舉例
re.compile 將正則表達(dá)式編譯成pattern對(duì)象

          
compile(pattern, flags=0)
        

第一個(gè)參數(shù):規(guī)則
第二個(gè)參數(shù):標(biāo)志位

re.match 只匹配字符串的開(kāi)始,如果字符串開(kāi)始不符合正則表達(dá)式,則匹配失敗,函數(shù)返回None

          
match(pattern, string, flags=0)
        

第一個(gè)參數(shù):規(guī)則
第二個(gè)參數(shù):表示要匹配的字符串
第三個(gè)參數(shù):標(biāo)致位,用于控制正則表達(dá)式的匹配方式

re.search 匹配整個(gè)字符串,直到找到一個(gè)匹配

          
search(pattern, string, flags=0)
        

第一個(gè)參數(shù):規(guī)則
第二個(gè)參數(shù):表示要匹配的字符串
第三個(gè)參數(shù):標(biāo)致位,用于控制正則表達(dá)式的匹配方式

          
>>> import re
>>> pattern = re.compile(r'linuxeye')
>>> match = pattern.match('jb51.net')
>>> print match
<_sre.SRE_Match object at 0x7f4e96e61c60>
>>> print match.group()
linuxeye
>>> m = pattern.match('blog.jb51.net') #match匹配開(kāi)頭,沒(méi)找到
>>> print m
None
>>> m = pattern.search('blog.jb51.net') #search匹配整個(gè)字符串,直到找到一個(gè)匹配
>>> print m
<_sre.SRE_Match object at 0x7f15abfc6b28>
>>> print m.group()
linuxeye
        
          
>>> m = re.match(r'linuxeye','jb51.net') #不用re.compile
>>> print m
<_sre.SRE_Match object at 0x7f4e96e61b90>
>>> print m.group()
linuxeye
>>> m = re.match(r'linuxeye','www.jb51.net')
>>> print m
None
        

re.split 用于來(lái)分割字符串

          
split(pattern, string, maxsplit=0)
        

第一個(gè)參數(shù):規(guī)則
第二個(gè)參數(shù):字符串
第三個(gè)參數(shù):最大分割字符串,默認(rèn)為0,表示每個(gè)匹配項(xiàng)都分割
實(shí)例:分割所有的字符串

          
>>> import re
>>> test_str = "1 2 3 4 5"
>>> re.split(r'\s+',test_str)
['1', '2', '3', '4', '5']
>>> re.split(r'\s+',test_str,2) #分割前2個(gè)
['1', '2', '3 4 5']
 
>>> test_str = "1 . 2. 3 .4 . 5"
>>> re.split(r'\.',test_str)
['1 ', ' 2', ' 3 ', '4 ', ' 5']
>>> re.split(r'\.',test_str,3)
['1 ', ' 2', ' 3 ', '4 . 5']
        

re.findall 在目標(biāo)字符串查找符合規(guī)則的字符串

          
findall(pattern, string, flags=0)
        

第一個(gè)參數(shù):規(guī)則
第二個(gè)參數(shù):目標(biāo)字符串
但三個(gè)參數(shù):后面還可以跟一個(gè)規(guī)則選擇項(xiàng)
返回的結(jié)果是一個(gè)列表,建中存放的是符合規(guī)則的字符串,如果沒(méi)有符合規(guī)則的字符串唄找到,就會(huì)返回一個(gè)空值

          
>>> import re
>>> test_mail = '
          
            
               test03@gmail.net'
>>> mail_re = re.compile(r'\w+@g....\.[a-z]{3}')
>>> re.findall(mail_re,test_mail)
['test01@gmail.com', 'test02@gmail.org', 'test03@gmail.net']
            
          
        

re.sub 以正則表達(dá)式為基礎(chǔ)的替換工作

          
sub(pattern, repl, string, count=0)
        

第一個(gè)參數(shù):規(guī)則
第二個(gè)參數(shù):替換后的字符串
第三個(gè)參數(shù):字符串
第四個(gè)參數(shù):替換個(gè)數(shù)。默認(rèn)為0,表示每個(gè)匹配項(xiàng)都替換

          
>>> test = 'blog.jb51.net jb51.net'
>>> test_re = re.compile(r'\.')
>>> re.sub(test_re,'--',test)
'blog--linuxeye--com linuxeye--com'
>>> re.sub(test_re,'--',test,1)
'blog--jb51.net jb51.net'
        

更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 国产成人精品无缓存在线播放 | 久草新在线观看 | 日韩亚洲第一页 | 欧美不卡在线观看 | 欧美一级www片免费观看 | 男人草女人的视频 | 欧美国产综合 | 外国成人网在线观看免费视频 | 中文字幕不卡一区2021 | 色综合视频 | 久久99久久精品国产99热 | 国产一二精品 | 视频国产免费 | 欧美精品成人一区二区视频一 | 特级全黄一级毛片视频 | 天天欲色成人综合网站 | 久久久久久免费精品视频 | 国产欧美曰韩一区二区三区 | 四虎影视网| 国产国产成人人免费影院 | 超碰最新上传 | 国产一在线精品一区在线观看 | 四虎国产免费 | 午夜伦y4480影院中文字幕 | 在线观看精品视频一区二区三区 | 天天射日 | 欧美18videosex灌满 | 午夜j| 国产精品久久久久免费a∨ 国产精品久久久久免费视频 | 色综合久久精品中文字幕首页 | 日韩精品午夜视频一区二区三区 | 亚洲一区欧美日韩 | 中文字幕亚洲图片 | 国产免费一区二区 | 男人叼女人的痛爽视频免费 | 久草视频免费播放 | 国产成人在线播放 | 四虎永久免费网站 | 2020国产精品视频免费 | 四虎www成人影院免费观看 | 国产精品亚洲欧美日韩久久 |