學習python的正規表示式,主要有兩個方面學習:
第一,學習如何寫正規表示式,主要是掌握其語法規範。正規表示式的語法規範是通用的,對各種開發語言都是一致的。
第二,學習如何使用正規表示式,也就是掌握python中相應的模組,在python中,通過提供的標準模組 re 來提供相應的使用正規表示式的api
正規表示式的核心作用就是匹配文字片段,即給出乙個正規表示式,以及一段文字,看看這段文字中哪些片段是可以與正規表示式匹配的。
利用正規表示式可以實現非常強大的文字處理功能,如匹配、查詢、替換、分組等。
例1:我們先來看乙個簡單例子:
#coding=utf-8
importre#
search的第乙個引數是 正規表示式,第二個引數是要處理的文字
if re.search('
abc','
12abc45
'): #
結果輸出find
"find
"else
:
"none"#
search的第乙個引數是 正規表示式,第二個引數是要處理的文字
if re.match('
abc','
12abc45
'): #
結果輸出none
"find
"else
:
"none
"
上面的**涉及到如下資訊:
1)re模組,這是python提供的處理正規表示式的標準模組,包含了很多有用的方法
2)re模組的search方法和match方法,這兩個方法都是在給定文字中查詢與指定正規表示式第乙個相匹配的文字片段。如果找到,返回乙個物件,物件中包含了相應的文字片段資訊。如果找不到,返回none。所以其查詢的結果可以用作條件表示式中。
search與match的區別是,search方法是在整個字串中查詢匹配的字串,而match方法是在開頭匹配,也就是說必須開頭就要符合。
3)search與match方法的第乙個引數就是正在表示式,這裡是乙個普通的字串,其實這是最簡單的正規表示式。正規表示式最強大的之處就是它有各種元字元。
如 a.b ,這裡的.就是乙個特殊字元,可以匹配任何單個字元(除換行符),如re.search('a.c','12axc45') 是可以匹配成功的。
例2:精確匹配的處理
上面介紹的 search 方法是在整個字串中查詢匹配,match方法是從頭匹配,但對後面的無要求。
在某些場合下,需要精確匹配,如給定正規表示式為 a.c ,希望只匹配 axc , abc 等,頭尾不希望有多餘的字元。
這是可在正規表示式的頭加符號︿ ,在結尾加上 $ ,可以強制精確匹配。但然也可以只限制開始 或 結束。
使用 ︿,其實相當於使用match方法。
如:>>> print re.search('^abc$','abcd')
none
>>> print re.search('^abc$','abc')
<_sre.sre_match object at 0x0339a020>
python基礎 正規表示式 python使用正則
在學習python中如何使用正規表示式,我們先來了解下正規表示式 正規表示式本身也和python沒有什麼關係,就是匹配字串內容的一種規則。官方定義 正規表示式是對字串操作的一種邏輯公式,就是用事先定義好的一些特定字元 及這些特定字元的組合,組成乙個 規則字串 這個 規則字串 用來表達對字串的一種過濾...
基本正規表示式
匹配除了換行符以外的任意字元 w 匹配字母或數字或下劃線或漢字 字母大寫即反義 不匹配 s 匹配任意的空白符 字母大寫即反義 不匹配 d 匹配數字 字母大寫即反義 不匹配 b 匹配單詞的開始或結束 字母大寫即反義 不匹配 匹配字串的開始 匹配字串的結束 x 匹配除了x以外的任意字元 aeiou 匹配...
正規表示式 基本
字元 d任意乙個數字,0 9中任意乙個 d任意非數字 w任意乙個字母 下劃線 數字。即 a z a z 0 9 w表示除 0 9a za z 之外的字元 s匹配任何空白字元,包括空格 製表符 換頁符等等。等價於 f n r t v s匹配任何非空白字元。匹配任意乙個字元 如要匹配包括 n在內的所有字...