成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

開發 后端
正則表達式就是從字符串中發現規律,并通過“抽象”的符號表達出來。打個比方,對于2,5,10,17,26,37這樣的數字序列,如何計算第7個值,肯定要先找該序列的規律,然后用n2+1這個表達式來描述其規律,進而得到第7個值為50。

 前言

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

[[265821]]

常用的正則符號

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

 

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。

實戰案例

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

  1. # 導入用于正則表達式的re模塊 
  2. import re 
  3. # 取出字符串string8中所有的天氣狀態 
  4. 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:'優'}" 
  5. # 基于正則表達式使用findall函數 
  6. print(re.findall("tianqi:'(.*?)'", string8)) 
  7. # 取出string9中所有含O字母的單詞 
  8. 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' 
  9. # 基于正則表達式使用findall函數 
  10. print(re.findall('w*ow*',string9, flags = re.I)) 
  11. # 將string10中的標點符號、數字和字母刪除 
  12. string10 = '據悉,這次發運的4臺蒸汽冷凝罐屬于國際熱核聚變實驗堆(ITER)項目的核二級壓力設備,先后完成了壓力試驗、真空試驗、氦氣檢漏試驗、千斤頂試驗、吊耳載荷試驗、疊裝試驗等驗收試驗。' 
  13. # 基于正則表達式使用sub函數 
  14. print(re.sub('[,。、a-zA-Z0-9()]','',string10)) 
  15. # 將string11中的每個子部分內容分割開 
  16. string11 = '2室2廳 | 101.62平 | 低區/7層 | 朝南  
  17.  上海未來 - 浦東 - 金楊 - 2005年建' 
  18. # 基于正則表達式使用split函數 
  19. split = re.split('[-| 
  20. ]', string11) 
  21. print(split) 
  22. # 分割結果的清洗 
  23. split_strip = [i.strip() for i in split] 
  24. print(split_strip) 
  25. out
  26. ['晴''陰~小雨''小雨~中雨''中雨~小雨'
  27. ['Together''discovered''only''to''competition''Our''celebration''of'
  28. 據悉這次發運的臺蒸汽冷凝罐屬于國際熱核聚變實驗堆項目的核二級壓力設備先后完成了壓力試驗真空試驗氦氣檢漏試驗千斤頂試驗吊耳載荷試驗疊裝試驗等驗收試驗 
  29. ['2室2廳 '' 101.62平 '' 低區/7層 '' 朝南 '' 上海未來 '' 浦東 '' 金楊 '' 2005年建'
  30. ['2室2廳''101.62平''低區/7層''朝南''上海未來''浦東''金楊''2005年建'

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

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

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

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

責任編輯:武曉燕 來源: 今日頭條
相關推薦

2010-03-25 18:25:36

Python正則表達式

2019-09-24 09:29:26

Python數據接口

2009-02-17 09:10:01

正則表達式Java優化

2018-09-27 15:25:08

正則表達式前端

2024-09-14 09:18:14

Python正則表達式

2021-01-27 11:34:19

Python正則表達式字符串

2020-09-04 09:16:04

Python正則表達式虛擬機

2019-12-17 17:01:02

MySQLSQL數據庫

2011-08-16 16:40:06

iPhone應用正則表達式OgreKit

2023-10-07 08:25:09

Java處理工具正則表達式

2016-09-12 09:57:08

grep命令表達式Linux

2009-09-16 17:29:30

正則表達式使用詳解

2012-04-28 15:22:46

PHP

2010-03-11 08:55:45

python正則表達式

2019-12-10 10:40:57

Python正則表達式編程語言

2010-03-01 15:51:59

Python則表達式

2024-12-25 15:09:38

Python字符串函數

2020-11-04 09:23:57

Python

2025-06-16 10:10:00

Python正則表達式

2015-10-08 09:15:37

C++源碼分析
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美亚州综合 | av在线免费观看网址 | 国产精品欧美一区二区三区不卡 | 99久久婷婷国产亚洲终合精品 | 欧美国产日韩精品 | 久久亚洲一区二区 | 欧美日韩国产中文字幕 | 久久精品亚洲精品 | 99久久久久 | 精品久久影院 | 亚洲在线一区二区 | 国产精品区二区三区日本 | 中文在线视频观看 | 久久国产亚洲 | 一区二区久久 | 亚洲国产精品久久久久秋霞不卡 | 日本 欧美 国产 | 福利电影在线 | 国产精品久久久久久亚洲调教 | 国产1区2区 | 神马久久香蕉 | www.887色视频免费 | 久久99精品久久久久久秒播九色 | 中文天堂在线一区 | 中文字幕日韩一区 | 天天玩天天干天天操 | 久久久精品影院 | 中文字字幕一区二区三区四区五区 | 久草日韩| 一区二区三区视频在线 | 91久操视频 | 亚洲精品白浆高清久久久久久 | 狠狠色综合欧美激情 | 成人精品视频在线观看 | 久久er精品| 国产九九九九 | 一级特黄a大片 | 一区二区三区四区五区在线视频 | 欧洲妇女成人淫片aaa视频 | 国产精品一区二区久久久久 | 国产真实乱全部视频 |