Python re模組介紹

2022-10-04 23:51:17 字數 3292 閱讀 4626

python中轉義字元

正規表示式使用反斜槓」 \ 「來代表特殊形式或用作轉義字元,這裡跟python的語法衝突,因此,python用」 \\\\ 「表示正規表示式中的」 \ 「,因為正規表示式中如果要匹配」 \ 「,需要用\來轉義,變成」 \\ 「,而python語法中又需要對字串中每乙個\進行轉義,所以就變成了」 \\\\ 「。

上面的寫法是不是覺得很麻煩,為了使正規表示式具有trrajb更好的可讀性,python特別設計了原始字串(raw string),需要提醒你的是,在寫檔案路徑的時候就不要使用raw string了,這裡存在陷阱。raw string就是用'r'作為字串的字首,如 r」\n」:表示兩個字trrajb符」\」和」n」,而不是換行符了。python中寫正規表示式時推薦使用這種形式。

正規表示式元字元說明

. 匹配除換行符以外的任意字元

^ 匹配字串的開始

$ 匹配字串的結束

用來匹配乙個指定的字元類別

? 對於前乙個字元字元重複0次到1次

* 對於前乙個字元重複0次到無窮次

{} 對於前乙個字元重複m次

對前乙個字元重複為m到n次

\d 匹配數字,相當於[0-9]

\d 匹配任何非數字字元,相當於[^0-9]

\s 匹配任意的空白符,相當於[ fv]

\s 匹配任何非空白字元,相當於[^ fv]

\w 匹配任何字母數字字元,相當於[a-za-z0-9_]

\w 匹配任何非字母數字字元,相當於[^a-za-z0-9_]

\b 匹配單詞的開始或結束模組函式說明即舉例

re.compile 將正規表示式編譯成pattern物件

compile(pattern, flags=0)第乙個引數:規則

第二個引數:標誌位

re.match 只匹配字串的開始,如果字串開始不符合正規表示式,則匹配失敗,函式返回none

match(pattern, string, flags=0)第乙個引數:規則

第二個引數:表示要匹配的字串

第三個引數:標緻位,用於控制正規表示式的匹配方式

re.search 匹配整個字串,直到找到乙個匹配

search(pattern, string, flags=0)第乙個引數:規則

第二個引數:表示要匹配的字串

第三個引數:標緻位,用於控制正規表示式的匹配方式

>>> import re

>>> pattern = re.compile(r'linuxeye')

>>> match = pattern.match('jb51.net')

>>> print match

<_sre.sre_match object at>

>>> print match.group()

linuxeye

>>> m = pattern.match('blog.jb51.net') #match匹配開頭,沒找到

>>> print m

none

>>> m = pattern.search('blog.jb51.net') #search匹配整個字串,直到找到乙個匹配

>>> print m

<_sre.sre_match object at>

>>> print m.group()

linuxeye>>> m = re.match(r'linuxeye','jb51.net') #不用re.compile

>>> print m

<_sre.sre_match object at>

>>> print m.group()

linuxeye

>>> m = re.match(r'linuxeye','www.jb51.net')

>>> print m

nonere.split 用於來分割字串

split(pattern, string, maxsplit=0)第乙個引數:規則

第二個引數:字串

第三個引數:最大分割字串,預設為0,表示每個匹配項都分割

例項:分割所有的字串

>>> import re

>>> test_str = "1 2 3 4 5"

>>> re.split(r'\s+',twww.cppcns.comest_str)

['1', '2', '3', '4'程式設計客棧, '5']

>>> re.split(r'\s+',test_str,2) #分割前2個

['1', '2', '3 4 5']

>>> test_str = "1 . 2. 3 .4 . 5"

>>> re.split(r'\.',test_str)

['1 ', ' 2', ' 3 ', '4 ', ' 5']

>>> re.split(r'\.',test_str,3)

['1 ', ' 2', ' 3 ', '4 . 5']re.findall 在目標字串查詢符合規則的字串

findall(pattern, string, flags=0)第乙個引數:規則

第二個引數:目標字串

但三個引數:後面還可以跟乙個規則選擇項

返回的結果是乙個列表,建中存放的是符合規則的字串,如果沒有符合規則的字串唄找到,就會返回乙個空值

>>> import re

>>> test_mail = ' [email protected]'

>>> mail_re = re.compile(r'\w+@g....\.[a-z]')

>>> re.findall(mail_re,test_mail)

['[email protected]', '[email protected]', '[email protected]']re.sub 以正規表示式為基礎的替換工作

sub(pattern, repl, string, count=0)第乙個引數:規則

第二個引數:替換後的字串

第三個引數:字串

第四個引數:替換個數。預設為0,表示每個匹配項都替換

>>> test = 'blog.jb51.net jb51.net'

>>> test_re = re.compile(r'\.')

>>> re.sub(test_re,'--',test)

'blog--linuxeye--com linuxeye--com'

>>> re.sub(test_re,'--',test,1)

'blog--jb51.net jb51.net'

本文標題: python re模組介紹

本文位址: /jiaoben/python/116617.html

Python re 正則模組

有些字元比較特殊,它們和自身並不匹配,而是會表明應和一些特殊的東西匹配,或者它們會影響到 re 其它部分的重複次數,它們叫元字元。其中 m 和 n 是十進位制整數。該限定符的意思是至少有 m 個重複,至多到 n 個重複。舉個例子,a b 將匹配 a b a b 和 a b 它不能匹配 ab 因為沒有...

python re 模組小結

前言 本人環境windows 7 64 位,python2.7 re是什麼 regular expression縮寫,意為正規表示式,是 python 的眾多模組之一 re用途 從文字中有選擇的批量抽取想要的文字碎片 re型別 分為dfa 確定的有窮狀態自動機 和 nfa 非確定的有窮狀態自動機 r...

Python re正則模組

對於比較複雜的字串處理任務,需要依靠正規表示式。首先需要匯入 re 模組 import re常用的元字元 符號含義 匹配除 n 和 r 之外的任何單個字元。匹配字串開始位置 匹配字串結束位置 前面的元素重複0次,1次或多次 前面的元素重複0次或1次 前面的元素重複1次或多次 前面的元素出現了n次 前...