亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Regex > 正文

Python中正則表達式的巧妙使用一文包你必掌握正則

2020-03-16 20:45:17
字體:
來源:轉載
供稿:網友

前言

正則表達式就是從字符串中發現規律,并通過“抽象”的符號表達出來。打個比方,對于2,5,10,17,26,37這樣的數字序列,如何計算第7個值,肯定要先找該序列的規律,然后用n2+1這個表達式來描述其規律,進而得到第7個值為50。對于需要匹配的字符串來說,同樣把發現規律作為第一步,本文主要使用正則表達式完成字符串的查詢匹配、替換匹配和分割匹配。

Python,正則表達式

常用的正則符號

在進入字符串的匹配之前,先來了解一下都有哪些常用的正則符號,見下表所示:

Python,正則表達式

如果讀者能夠比較熟練地掌握上表中的內容,相信在字符串處理過程中將會游刃有余。如前文所說,本節將基于正則表達式完成字符串的查詢、替換和分割操作,這些操作都需要導入re模塊,并使用如下介紹的幾個函數。

字符串的匹配查詢

re模塊中的findall函數可以對指定的字符串進行遍歷匹配,獲取字符串中所有匹配的子串,并返回一個列表結果。該函數的參數含義如下:

findall(pattern, string, flags=0)

pattern:指定需要匹配的正則表達式。

string:指定待處理的字符串。

flags:指定匹配模式,常用的值可以是re.I、re.M、re.S和re.X。re.I的模式是讓正則表達式對大小寫不敏感;re.M的模式是讓正則表達式可以多行匹配;re.S的模式指明正則符號.可以匹配任意字符,包括換行符 ;re.X模式允許正則表達式可以寫得更加詳細,如多行表示、忽略空白字符、加入注釋等。

字符串的匹配替換

re模塊中的sub函數的功能是替換,類似于字符串的replace方法,該函數根據正則表達式把滿足匹配的內容替換為repl。該函數的參數含義如下:

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

pattern:同findall函數中的pattern。

repl:指定替換成的新值。

string:同findall函數中的string。

count:用于指定最多替換的次數,默認為全部替換。

flags:同findall函數中的flags。

字符串的匹配分割

re模塊中的split函數是將字符串按照指定的正則表達式分隔開,類似于字符串的split方法。該函數的具體參數含義如下:

split(pattern, string, maxsplit=0, flags=0)

pattern:同findall函數中的pattern。

maxsplit:用于指定最大分割次數,默認為全部分割。

string:同findall函數中的string。

flags:同findall函數中的flags。

實戰案例

如果上面的函數和參數含義都已經掌握了,還需要進一步通過案例加強理解,接下來舉例說明上面的三個函數:

# 導入用于正則表達式的re模塊 import re # 取出字符串string8中所有的天氣狀態 string8 = "{ymd:'2018-01-01',tianqi:'晴',aqiInfo:'輕度污染'},{ymd:'2018-01-02',tianqi:'陰~小雨',aqiInfo:'優'},{ymd:'2018-01-03',tianqi:'小雨~中雨',aqiInfo:'優'},{ymd:'2018-01-04',tianqi:'中雨~小雨',aqiInfo:'優'}" # 基于正則表達式使用findall函數 print(re.findall("tianqi:'(.*?)'", string8)) # 取出string9中所有含O字母的單詞 string9 = 'Together, we discovered that a free market only thrives when there are rules to ensure competition and fair play, Our celebration of initiative and enterprise' # 基于正則表達式使用findall函數 print(re.findall('w*ow*',string9, flags = re.I)) # 將string10中的標點符號、數字和字母刪除 string10 = '據悉,這次發運的4臺蒸汽冷凝罐屬于國際熱核聚變實驗堆(ITER)項目的核二級壓力設備,先后完成了壓力試驗、真空試驗、氦氣檢漏試驗、千斤頂試驗、吊耳載荷試驗、疊裝試驗等驗收試驗。' # 基于正則表達式使用sub函數 print(re.sub('[,。、a-zA-Z0-9()]','',string10)) # 將string11中的每個子部分內容分割開 string11 = '2室2廳 | 101.62平 | 低區/7層 | 朝南  上海未來 - 浦東 - 金楊 - 2005年建' # 基于正則表達式使用split函數 split = re.split('[-| ]', string11) print(split) # 分割結果的清洗 split_strip = [i.strip() for i in split] print(split_strip) out: ['晴', '陰~小雨', '小雨~中雨', '中雨~小雨'] ['Together', 'discovered', 'only', 'to', 'competition', 'Our', 'celebration', 'of'] 據悉這次發運的臺蒸汽冷凝罐屬于國際熱核聚變實驗堆項目的核二級壓力設備先后完成了壓力試驗真空試驗氦氣檢漏試驗千斤頂試驗吊耳載荷試驗疊裝試驗等驗收試驗 ['2室2廳 ', ' 101.62平 ', ' 低區/7層 ', ' 朝南 ', ' 上海未來 ', ' 浦東 ', ' 金楊 ', ' 2005年建'] ['2室2廳', '101.62平', '低區/7層', '朝南', '上海未來', '浦東', '金楊', '2005年建']

如上結果所示,在第一個例子中通過正則表達式"tianqi:'(.*?)'"實現目標數據的獲取,如果不使用括號的話,就會產生類似"tianqi:'晴'", "tianqi:'陰~小雨'"這樣的值,所以,加上括號就是為了分組,且僅返回組中的內容;

第二個例子并沒有將正則表達式寫入圓括號,如果寫上圓括號也是返回一樣的結果,所以findall就是用來返回滿足匹配條件的列表值,如果有括號,就僅返回括號內的匹配值;

第三個例子使用替換的方法,將所有的標點符號換為空字符,進而實現刪除的效果;

第四個例子是對字符串的分割,如果直接按照正則 '[,。、a-zA-Z0-9()]' 分割的話,返回的結果中包含空字符,如 '2室2廳' 后面就有一個空字符。為了刪除列表中每個元素的首尾空字符,使用了列表表達式,并且結合字符串的strip方法完成空字符的壓縮。

總結

以上所述是小編給大家介紹的Python中正則表達式的巧妙使用一文包你必掌握正則,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復大家的!


注:相關教程知識閱讀請移步到正則表達式頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
最新的欧美黄色| 成人字幕网zmw| 国产精品日韩久久久久| 中文字幕日韩精品在线观看| 久久久久久久激情视频| 欧美精品一区二区三区国产精品| 精品久久久久久久久久ntr影视| 久久这里只有精品视频首页| 97久久伊人激情网| 欧美日韩999| 中文字幕av一区中文字幕天堂| 久久精品国产亚洲| 欧美日韩国产成人在线| www.亚洲免费视频| 一区二区欧美在线| 91精品免费视频| 精品亚洲一区二区三区| 日韩中文在线不卡| 亚洲精品中文字幕av| 亚洲国产精品人人爽夜夜爽| 欧美乱大交xxxxx另类电影| 人人做人人澡人人爽欧美| 久久久久九九九九| 91美女福利视频高清| 国产精品美乳一区二区免费| 亚洲欧美国产一本综合首页| 国产精品免费视频xxxx| 色爱av美腿丝袜综合粉嫩av| 国产精品久久电影观看| 精品亚洲永久免费精品| 精品久久久久久中文字幕大豆网| 亚洲男人的天堂在线播放| 欧美激情一级欧美精品| 狠狠色香婷婷久久亚洲精品| 日韩中文字幕在线视频| 91久久精品久久国产性色也91| 97香蕉久久超级碰碰高清版| 国产精品偷伦视频免费观看国产| 亚洲精品久久7777777| 国外色69视频在线观看| 亚洲人成网站免费播放| 91精品在线观| 成人欧美在线观看| 欧美电影在线观看| 91精品国产自产91精品| 国产精品你懂得| 九九综合九九综合| 国产精品久久久久久久久久久久久久| 日韩欧中文字幕| 国产精品白嫩美女在线观看| 国产精品中文字幕在线| 国产不卡av在线免费观看| 国产亚洲精品激情久久| 亚洲欧美日韩国产精品| 精品中文字幕在线观看| 国产精品欧美一区二区三区奶水| 91社区国产高清| 国产精品第三页| 欧美精品久久久久久久| 久久久精品国产一区二区| 国产日韩精品入口| 91精品国产乱码久久久久久久久| 欧美午夜精品久久久久久久| 国产精品va在线播放| 欧美极品少妇xxxxⅹ裸体艺术| 久久成人精品电影| 欧美精品午夜视频| 亚洲欧美综合另类中字| 国产91精品高潮白浆喷水| 久久久国产一区| 91chinesevideo永久地址| 欧洲亚洲在线视频| 亚洲裸体xxxx| 欧美在线视频网站| 亚洲精品久久久久国产| 亚洲美女福利视频网站| 国产亚洲成av人片在线观看桃| 国产在线999| 亚洲黄色av网站| 国产精品99久久久久久白浆小说| 国产99视频精品免视看7| 久久精品99国产精品酒店日本| 91精品国产综合久久香蕉最新版| 在线不卡国产精品| 国产精品美女av| 91香蕉国产在线观看| 狠狠久久亚洲欧美专区| 91精品久久久久久久久久久久久久| 国产成人精品优优av| 亚洲国产中文字幕在线观看| 国产一区二区在线免费| 亚洲在线www| 国产伦精品一区二区三区精品视频| 91免费视频国产| 国产精品成人久久久久| 成人激情视频在线观看| 色哟哟入口国产精品| 中文字幕亚洲欧美一区二区三区| 日韩资源在线观看| 大桥未久av一区二区三区| 91香蕉嫩草神马影院在线观看| www.日本久久久久com.| 九九热这里只有在线精品视| 午夜精品福利视频| 狠狠久久五月精品中文字幕| 久久国产精品99国产精| 亚洲欧美日韩国产精品| 亚洲欧美日韩在线一区| 久久久久久久久亚洲| 亚洲一区二区免费在线| 欧美夜福利tv在线| 777777777亚洲妇女| 国产欧美精品一区二区| 亚洲国产精品99久久| 久久香蕉频线观| 久久久最新网址| 中文字幕在线亚洲| 高潮白浆女日韩av免费看| 亚洲天堂网站在线观看视频| 日韩av123| 国产日本欧美一区二区三区在线| 久久夜色精品亚洲噜噜国产mv| 亚洲美女精品成人在线视频| 91午夜在线播放| 欧美亚洲国产视频小说| 亚洲午夜小视频| 性欧美长视频免费观看不卡| 亚洲精品久久久久久久久久久久| 91久热免费在线视频| 久久亚洲国产精品成人av秋霞| 欧美大片在线看免费观看| 日韩高清有码在线| 中文字幕亚洲在线| 久久99热这里只有精品国产| 亚洲2020天天堂在线观看| 国产精品久久久久久久久久小说| 亚洲精品aⅴ中文字幕乱码| 国产精品av在线播放| 自拍偷拍亚洲区| 久久精品精品电影网| 性色av一区二区咪爱| 欧美电影院免费观看| 日本精品久久电影| 在线一区二区日韩| 亚洲精品成人免费| 国产精品网红福利| 国产suv精品一区二区三区88区| 日韩综合视频在线观看| 日韩av在线网页| 日韩在线观看电影| 国产精品入口免费视频一| 精品伊人久久97| 成人欧美一区二区三区在线湿哒哒| 91亚洲国产精品| 亚洲日本中文字幕| 久久久久久久电影一区| 欧美老肥婆性猛交视频| 欧美日韩中文在线| 亚洲二区在线播放视频| 亚洲精品美女网站| 国产日韩专区在线| 在线a欧美视频| 中文字幕在线看视频国产欧美| 亚洲成人1234|