国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - 正則表達式 - Python中正則表達式的巧妙使用一文包你必掌握正則

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

2020-09-03 16:02編程python新視野 正則表達式

正則表達式就是從字符串中發現規律,并通過“抽象”的符號表達出來。這篇文章主要介紹了Python中正則表達式的巧妙使用,需要的朋友可以參考下

前言

正則表達式就是從字符串中發現規律,并通過“抽象”的符號表達出來。打個比方,對于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。

實戰案例

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# 導入用于正則表達式的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 = '22廳 | 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中正則表達式的巧妙使用一文包你必掌握正則,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復大家的!

原文鏈接:http://developer.51cto.com/art/201905/596697.htm

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 日韩精品一区二区三区中文 | 99久久精品国产一区二区三区 | 国产精品一区在线观看 | 可以在线观看的av网站 | 国产成人精品一区二区在线 | 久久99国产精一区二区三区 | 秋霞av亚洲一区二区三 | 亚洲日本va在线观看 | 精品在线一区二区 | 一区二区免费看 | 国内精品久久久久久中文字幕 | 久久久精品久久久 | 午夜电影福利 | 一级免费视频 | 久久首页| 国产一区网站 | 国产精品久久久久久久久久久久久久久久 | 免费看一级黄色片 | 看一级黄色大片 | 国产精品久久久久久亚洲调教 | 午夜成人免费视频 | 欧美一区二区网站 | 狠狠干av | 黄色一级毛片网站 | 激情国产视频 | 国产一级毛片aaa | 激情在线观看视频 | 成人性大片免费观看网站 | 天天爽夜夜爽夜夜爽精品视频 | 国产在线精品视频 | 国产露脸国语对白在线 | 精品二区 | 成人免费视频亚洲 | av成人毛片 | 69久久| 精品久久中文字幕 | 欧美大片一区二区 | 亚洲欧美激情精品一区二区 | 亚洲精品欧美在线 | 久久99久久99精品免视看婷婷 | 色在线视频观看 |