筆記(Python核心程式設計 第 1 部分 通用應用主題 1 章 正則表示式)
Python核心程式設計
第 1 部分 通用應用主題
1 章 正則表示式
- 管道符號(|):表示一個“從多個模式中選擇其 一”的操作。它用於分割不同的正則表示式。就能夠增強正則表示式的靈活性,使得正則表示式能夠匹配多個字串 而不僅僅只是一個字串。擇一匹配有時候也稱作並(union)或者邏輯或(logical OR)。
Match():match()試圖從字串的起始部分開始匹配模式
#匹配成功
>>> import re
>>> m = re.match('foo', 'foo')
>>> if m is not None:
... m.group()
...
'foo'
#匹配失敗
>>> m = re.match('foo', 'bar')
>>> if m is not None:
... m.group()
...
Search():search()函式不但會搜尋模式在字串中 第一次出現的位置,而且嚴格地對字串從左到右搜尋。
使用 group()方法訪問每個獨立的子組以及 groups()方法以獲取一 個包含所有匹配子組的元組。
findeall:
findall()查詢字串中某個正則表示式模式全部的非重複出現情況。這與 search()在執行 字串搜尋時類似,但與 match()和 search()的不同之處在於,findall()總是返回一個列表。。如 果 findall()沒有找到匹配的部分,就返回一個空列表,但如果匹配成功,列表將包含所有成 功的匹配部分(從左向右按出現順序排列)。
注意,使用 finditer()函式完成的所有額外工作都旨在獲取它的輸出來匹配 findall()的輸出。 最後 ,與 match()和 search()類似,findall()和 finditer()方法的版本支援可選的 pos 和 endpos 引數,這兩個引數用於控制目標字串的搜尋邊界.
sub()和 subn():都是將某字 符串中所有匹配正則表示式的部分進行某種形式的替換。用來替換的部分通常是一個字串, 但它也可能是一個函式,該函式返回一個用來替換的字串。subn()和 sub()一樣,但 subn() 還返回一個表示替換的總數,替換後的字串和表示替換總數的數字一起作為一個擁有兩個 元素的元組返回。