python正規表示式(re)

2021-08-01 23:42:45 字數 1894 閱讀 3044

在python中re模組用於對正規表示式(regular expression)的支援。

正規表示式是可以匹配文字片段的模式。

一、正規表示式的書寫:

1、萬用字元:點( . )可以匹配任何字元(除了換行符)。如:'.ike' 可以匹配 』bike『;』like『等

2、對特殊字元進行轉義:在正規表示式中如果是引用特殊字元作為普通字元有可能會出現問題。如 『python.org'可能會被匹配成 『pythonaorg』

解決方法:(1)用轉義符。 如上例:『python\\.org'   (兩個\\是進行了直譯器轉義——re模組轉義。兩個轉義)。

(2)用原始字串。 r』python\.org『 。

3、字符集:使用中括號 [ ] 擴住字串來建立字符集。  [bl]ike可以匹配bike 、like。[a-za-z0-9]可以匹配任意大小寫字母和數字

在開頭加上 ^ 可以反轉字符集。[^qwe]可以匹配除q w e以外的字元。

(注:在字符集中對. * ?等字元進行轉義通常沒有必要。記住:1、如果 ^ 字元在字符集開頭要進行轉義(希望^作為普通字串2、 ] 或 -最好放在字符集開頭) 

4、選擇符和子模式:管道符號 | 。如:只想匹配ipad 和 iphone——ipad | iphone。

子模式:有時候不需要對整個模式使用選擇運算子。使用圓括號括起需要的部分。如:ip(ad | hone)。

5.可選項和重複子模式:在子模式後面加上問號就變成可選項了。 如:r'(http://)?(www.)?python\.org

(pattern)*:允許模式重複0次或多次。

(pattern)+:允許模式重複1次或多次。

(pattern):允許模式重複m~n次。

?表示子模式只能出現一次或不出現。

6、字串的開始和結尾:只想在字串開頭而不是其他位置匹配』ht+p『,就用 ^ 標記開始。similarly,字串結尾用$標識。

二、re庫的內容:

re.compile將正規表示式轉換為模式物件。使用compile完成一次轉化後。每次使用模式就不用進行轉換了。re.search(pat,string) == pat.search(string)

re.search 在給定字串中尋找第乙個匹配給正規表示式的子字串。一旦找到string就會返回true否則返回false

re.match會在給定字串開頭匹配正規表示式。如 match('p','people') 返回true re.match('p','www.python.org')返回false

re.split根據模式的匹配項分割字串。maxsplit引數表示字串最多可以分割的次數。

re.findall以列表形式返回給定模式的所有匹配項

re.sub:使用給定替換內容將匹配模式的子字串替換掉

re.escape對字串中所有可能被解釋成正則運算子的字元驚醒轉義的應用函式

三、組:

組就是放置在圓括號內的子模式,組的序號取決於它左側的括號數。組0就是整個模式

re匹配物件的一些重要方法:

group方法返回模式中與給定組匹配的字串

start返回給定組的匹配項的開始索引

end返回結束索引

span以元組的形式返回(start,end)

python 正規表示式 re

match 和 search 的區別 match是從字串開頭匹配,而search是在整個字串中匹配。如 p re.compile a z p.match message none 因為開頭是 因此無法匹配 而 m p.search message print m re.matchobject ins...

python正規表示式 re

re.match 嘗試從字串的開始匹配乙個模式,如 下面的例子匹配第乙個單詞。import retext jgood is a handsome boy,he is cool,clever,and so on.m re.match r w s text ifm print m.group 0 n m...

Python 正規表示式re

資源 官方說明 help re 命令列檢視官方解釋視覺化正規表示式 教程 特殊字元 常用功能 說明 開頭 x 以x字元開頭 結尾 x 以x字元結尾 任意字元 0 提取子串 math obj.group 1 匹配成功後,拿出第乙個括號裡的子串 非貪婪匹配 詳細說明 或者 1.中括號裡的任意乙個 2.可...