日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)Python教程:python里的re是什么

定義

堆龍德慶網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站設(shè)計(jì)等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營維護(hù)。成都創(chuàng)新互聯(lián)于2013年開始到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)。

正則表達(dá)式是一個(gè)特殊的字符序列,能方便的檢查一個(gè)字符串是否與某種模式匹配。re模塊使得python擁有全部的正則表達(dá)式功能。

用途

通過使用正則表達(dá)式,可以:

測試字符串內(nèi)的模式。—— 例如,可以測試輸入字符串,以查看字符串內(nèi)是否出現(xiàn)電話號(hào)碼模式或信用卡號(hào)碼模式。這稱為數(shù)據(jù)驗(yàn)證。

替換文本。—— 可以使用正則表達(dá)式來識(shí)別文檔中的特定文本,完全刪除該文本或者用其他文本替換它。

基于模式匹配從字符串中提取子字符串?!?可以查找文檔內(nèi)或輸入域內(nèi)特定的文本。

語法

'.'     匹配所有字符串,除\n以外
'-'     表示范圍[0-9]
'*'     匹配前面的子表達(dá)式零次或多次。要匹配 * 字符,請(qǐng)使用 \*。
'+'     匹配前面的子表達(dá)式一次或多次。要匹配 + 字符,請(qǐng)使用 \+
'^'     匹配字符串開頭
'$'     匹配字符串結(jié)尾 re
'\'     轉(zhuǎn)義字符, 使后一個(gè)字符改變?cè)瓉淼囊馑迹绻址杏凶址?需要匹配,可以\*或者字符集[*] 
        re.findall(r'3\*','3*ds')結(jié)['3*']
'*'     匹配前面的字符0次或多次 re.findall("ab*","cabc3abcbbac")結(jié)果:['ab', 'ab', 'a']
'?'     匹配前一個(gè)字符串0次或1次 re.findall('ab?','abcabcabcadf')結(jié)果['ab', 'ab', 'ab', 'a']
'{m}'   匹配前一個(gè)字符m次 re.findall('cb{1}','bchbchcbfbcbb')結(jié)果['cb', 'cb']
'{n,m}' 匹配前一個(gè)字符n到m次 re.findall('cb{2,3}','bchbchcbfbcbb')結(jié)果['cbb']
'\d'    匹配數(shù)字,等于[0-9] re.findall('\d','電話:10086')結(jié)果['1', '0', '0', '8', '6']
'\D'    匹配非數(shù)字,等于[^0-9] re.findall('\D','電話:10086')結(jié)果['電', '話', ':']
'\w'    匹配字母和數(shù)字,等于[A-Za-z0-9] re.findall('\w','alex123,./;;;')結(jié)果['a', 'l', 'e', 'x', '1', '2', '3']
'\W'    匹配非英文字母和數(shù)字,等于[^A-Za-z0-9] re.findall('\W','alex123,./;;;')結(jié)果[',', '.', '/', ';', ';', ';']
'\s'    匹配空白字符 re.findall('\s','3*ds \t\n')結(jié)果[' ', '\t', '\n']
'\S'    匹配非空白字符 re.findall('\s','3*ds \t\n')結(jié)果['3', '*', 'd', 's']
'\A'    匹配字符串開頭
'\Z'    匹配字符串結(jié)尾
'\b'    匹配單詞的詞首和詞尾,單詞被定義為一個(gè)字母數(shù)字序列,因此詞尾是用空白符或非字母數(shù)字符來表示的
'\B'    與\b相反,只在當(dāng)前位置不在單詞邊界時(shí)匹配
[]      是定義匹配的字符范圍。比如 [a-zA-Z0-9] 表示相應(yīng)位置的字符要匹配英文字符和數(shù)字。[\s*]表示空格或者*號(hào)
'(?P...)'  分組,除了原有編號(hào)外在指定一個(gè)額外的別名 
re.search("(?P[0-9]{4})(?P[0-9]{2})(?P[0-9]{8})","371481199306143242").groupdict("city") 
結(jié)果{'province': '3714', 'city': '81', 'birthday': '19930614'}

模式

貪婪模式和非貪婪模式

正則表達(dá)式通常使用于查找匹配字符串。python里數(shù)量詞默認(rèn)是貪婪的,總是嘗試匹配盡可能多的字符;非貪婪模式正好相反,總是嘗試匹配盡可能少的字符。

使用方法

在python中默認(rèn)采用的是貪婪模式,使用非貪婪模式的話,只需要在量詞后面直接加上一個(gè)問號(hào)”?”。

例子當(dāng)中已經(jīng)匹配到了“ab”時(shí)已經(jīng)可以使整個(gè)表達(dá)式匹配成功,但是由于采用的是貪婪模式,所以還需要往后繼續(xù)匹配,一直到匹配到最后一個(gè)”b”的時(shí)候,后面已經(jīng)沒有可以成功匹配的字符串了,匹配結(jié)束。返回匹配結(jié)果“abbbbbb”。 所以,我們可以將貪婪模式理解為:在整個(gè)表達(dá)式匹配成功的前提下,盡可能多的匹配。

非貪婪模式也就是將我們例子中的正則表達(dá)式“ab+”改為”ab+?”,當(dāng)匹配到“ab”時(shí),已經(jīng)匹配成功,直接結(jié)束匹配,不在向后繼續(xù)嘗試,返回匹配成功的字符串”ab”。

所以,我們可以將非貪婪模式理解為:在整個(gè)表達(dá)式匹配成功的前提下,盡可能少的匹配。


分享名稱:創(chuàng)新互聯(lián)Python教程:python里的re是什么
地址分享:http://www.dlmjj.cn/article/dpshjso.html