正規表示式
正規表示式,通常被用來檢索、替換那些符合某個模式(規則)的文字。正規表示式是對字串操作的一種邏輯公式,就是用事先定義好的一些特定字元及這些特定字元的組合,組成乙個"規則字串",這個"規則字串"用來表達對字串的一種過濾邏輯。python中使用re模組操作正規表示式。
正規表示式的常用操作(1)
操作符說明例項.
表示任何單個字元
[ ]字符集,對單個字元給出取值範圍
[abc] 表示a、b、c,[a-z]表示a到z單個字元
[^ ]
非字符集,對單個字元給出排除範圍
[^abc] 表示非a非b非c的單個字元
*前乙個字元0次或者無限次擴充套件
abc* 表示ab、abc、abcc、abccc等
+前乙個字元1次或者無限次擴充套件
abc+ 表示abc、abcc、abccc等
?前乙個字元0次或者1次擴充套件
abc? 表示ab、abc
|左右表示式任意乙個
abc|def 表示abc、def
正規表示式的常用操作符(2)
操作符說明
例項擴充套件前乙個字元m次
abc表示abbc
擴充套件前乙個字元m至n次()包含n
abc表示abc、abbc
^匹配字串開頭
^abc表示abc且在乙個字串的開頭
$匹配字串結尾
abc$表示abc且在乙個字串的結尾
( )分組標記,內部只能使用|操作符
(abc)表示abc,(abc|def)表示abc、def
\d數字,等價於[0-9]
\w單個字元,等價[a-z a-z 0-9 _ ]
re庫主要功能函式
函式說明
re.search()
在乙個字串中搜尋匹配正規表示式的第乙個位置,返回match物件
re.match()
在乙個字串的開始位置匹配正規表示式,返回match物件
re.findall()
搜尋字串,以列表型別返回全部能匹配的子串
re.split()
將乙個字串按照正規表示式匹配結果進行分割,返回列表型別
re.finditer()
搜尋字串,返回乙個匹配結果的迭代型別,每個迭代元素是match物件
re.sub()
在乙個字串中替換所有匹配正規表示式的子串,返回替換後的字串
正規表示式可以包含一些可選標誌修飾符來控制匹配的模式。修飾符被指定為乙個可選的標誌。 多個標誌可以通過按位 or(|) 它們來指定。如 re.i | re.m 被設定成 i 和 m 標誌:
修飾符描述
re.i
使匹配對大小寫不敏感
re.l
做本地化識別(locale-aware)匹配
re.m
多行匹配,影響 ^ 和 $
re.s
使 . 匹配包括換行在內的所有字元
re.u
根據unicode字符集解析字元。這個標誌影響 \w, \w, \b, \b.
re.x
該標誌通過給予你更靈活的格式以便你將正規表示式寫得更易於理解。
1、建立模式物件
不匹配的
import re
#1建立模式物件
pat = re.compile("aa") #此處的aa,是正規表示式,用來去驗證其他的字串
m = pat.search("cba") #search後面的字串是被校驗的內容
乙個匹配的
import re
#1建立模式物件
pat = re.compile("aa") #此處的aa,是正規表示式,用來去驗證其他的字串
m = pat.search("abcaaa") #<_sre.sre_match object span="(3," match="aa"> 左閉右開區間
多個匹配的
import re
#1建立模式物件
pat = re.compile("aa") #此處的aa,是正規表示式,用來去驗證其他的字串
m = pat.search("abcaaaccaaaa") #<_sre.sre_match object span="(3," match="aa"> 進行比對查詢,第一次出現的aa
進行比對查詢,第一次出現的aa
2、沒有模式物件
re.search()
m = re.search("asd","aasd") #前面的字串是規則(模版),後面的字串是被校驗的物件
re.findall() 前面字串是規則,後面是被校驗的
print(re.findall("a","asdadfsa")) #前面字串是規則,後面是被校驗的。['a', 'a']
sub
print(re.sub("a","a","abcdcasdf")) #用a來替換a.在第三個字串中查詢
#建議在正規表示式中,在被比較的字串前面加上r。r是防止轉義字元生效,不用擔心轉義字元的問題
python正規表示式元字元 正規表示式
字元 描述將下乙個字元標記為乙個特殊字元 或乙個原義字元 或乙個 向後引用 或乙個八進位制轉義符。例如,n 匹配字元 n n 匹配乙個換行符。序列 匹配 而 則匹配 匹配輸入字串的開始位置。如果設定了 regexp 物件的 multiline 屬性,也匹配 n 或 r 之後的位置。匹配輸入字串的結束...
Python 正規表示式
1.在python中,所有和正規表示式相關的功能都包含在re模組中。2.字元 表示 字串的末尾 如 road 則表示 只有當 road 出現在乙個字串的尾部時才會匹配。3.字元 表示 字元中的開始 如 road 則表示 只有當 road 出現在乙個字串的頭部時才會匹配。4.利用re.sub函式對字串...
Python正規表示式
學習python自然而然就不得不面對正規表示式這個難題。當初在沒有學習python之前,自己也曾經嘗試著學習過正規表示式,但是那時候感覺很麻煩,很難懂,結果就是不了了之。但是現在學習python我用的書是 python基礎教程 第二版 這本書中對re模組的講解很簡單易懂,內容不多但起碼把人領進門了,...