您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關python正則表達式如何使用,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
正則表達式簡介:
正則表達式(regex)用于探索給定字符串中的固定模式。我們想找到的模式可以是任何東西。可以創建類似于查找電子郵件或手機號碼的模式。還可以創建查找以a開頭、以z結尾的字符串的模式。
創建模式:
使用正則表達式時,首先需要學習的是如何創建模式。接下來將對一些最常用的模式進行逐一介紹。可以想到最簡單的模式是一個簡單的字符串。
pattern = r'times' string = "It was the best of times, it was the worst of times." print(len(re.findall(pattern,string)))
為了幫助創建復雜的模式,正則表達式提供了特殊的字符/操作符。下面來逐個看看這些操作符。
1、操作符
這在第一個例子中使用過,可用于找到符合這些方括號中條件的一個字符。
[abc]-將查找文本中出現的所有a、b或c
[a-z]-將查找文本中出現的所有從a到z的字母
[a-z0–9A-Z]-將查找文本中出現的所有從A到Z的大寫字母、從a到z的小寫字母和從0到9的數字。
Python中運行下列代碼:
pattern = r'[a-zA-Z]' string = "It was the best of times, it was the worst of times." print(len(re.findall(pattern,string)))
2、點算符
點運算符(.) 用于匹配除換行符以外的任何字符。運算符最大的優點是,它們可以結合使用。
3、一些元序列
在使用正則表達式時,一些模式會經常被用到。因此正則表達式為這些模式創建了一些快捷方式。最常用的快捷方式如下:
\w,匹配任何字母、數字或下劃線。相當于[a-zA-Z0–9_]
\W,匹配除字母、數字或下劃線以外的任何內容。
\d,匹配任何十進制數字。相當于[0–9]。
\D,匹配除十進制數字以外的任何數字。
正則表達式函數
目前為止,只使用了 re包中的findall 函數,其實還有很多其他函數。下面來逐個介紹。
1、findall
上面已經使用了 findall。這是我最常使用的一個。下面來正式認識一下這個函數吧。
輸入:模式和測試字符串
輸出:字符串列表。
#USAGE: pattern = r'[iI]t' string = "It was the best of times, it was the worst of times." matches = re.findall(pattern,string) for match in matches: print(match)------------------------------------------------------------ It It 2、搜索 輸入:模式和測試字符串 輸出:首次匹配的位置對象。 #USAGE: pattern = r'[iI]t' string = "It was the best of times, it was the worst of times." location = re.search(pattern,string) print(location) ------------------------------------------------------------ <_sre.SRE_Match object; span=(0, 2), match='It'> 可以使用下面編程獲取該位置對象的數據: print(location.group()) ------------------------------------------------------------ 'It'
3、替換
這個功能也很重要。當使用自然語言處理程序時,有時需要用X替換整數,或者可能需要編輯一些文件。任何文本編輯器中的查找和替換都可以做到。
輸入:搜索模式、替換模式和目標字符串
輸出:替換字符串
string = "It was the best of times, it was the worst of times." string = re.sub(r'times', r'life', string) print(string) ------------------------------------------------------------ It was the best of life, it was the worst of life.
Python正則表達式應用范圍:
1、PAN編號
2、查找域名
3、查找電子郵件地址
下面的正則表達式用于在長文本中查找電子郵件地址。
match=re.findall(r'([\w0-9-._]+@[\w0-9-.]+[\w0-9]{2,3})',string)
關于python正則表達式如何使用就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。