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次 前...