單字元匹配
字元匹配規則示例.
匹配任意乙個字元(除了換行:\n)
re.match("...", "ab")
匹配[ ]中的任意乙個字元
re.match("1[34578]","18")
\d匹配任意乙個數字字元,即0-9。\d = [0-9]
re.match("\d", "2")
\d匹配任意乙個非數字字元。\d = [^0-9]
re.match("\d", "a")
\s匹配任意乙個空白字元,相當於 [ \t\n\r\f\v]
re.match("\s", "\ta")
\s匹配任意乙個非空白字元,相當於 [^ \t\n\r\f\v]
re.match("\s", "\na")
\w匹配數字、字母、下劃線中的任意乙個字元,相當於 [a-za-z0-9_]
re.match("\w", "_a")
\w匹配非數字、字母、下劃線中的任意乙個字元,相當於 [^a-za-z0-9_]
re.match("\w", "1a")
字元匹配規則示例*
匹配前乙個元字元出現0次或者多次,即可以有0次。
re.match("\d*", "123")
+匹配前乙個元字元出現1次或者多次,即至少有1次。
re.match("\d+", "123")
?匹配前乙個元字元出現1次或者0次,即要麼有1次,要麼沒有。
re.match("\d?", "1234abc")
匹配前乙個元字元出現 m 次。
re.match("\d[a-z]", "1234abc")
匹配前乙個元字元至少出現 m 次。
re.match("\d[a-z]", "1234abc")
匹配前乙個元字元出現m次到n次。
re.match("\d[a-z]", "1234abc")
表示邊界
字元匹配規則示例^
匹配目標字串的開始位置,多行模式下匹配每一行的開始
$匹配目標字串的結束位置,多行模式下匹配每一行的結束
\b匹配乙個單詞的邊界。單詞邊界:數字字母下劃線和其它字元的交界位置為單詞的邊界
示例如下
\b匹配非單詞的邊界。就是看單詞兩邊是不是數字字母下劃線。若是,即為非單詞邊界
示例如下
\a匹配字串開始位置(^),忽略多行模式
\z匹配字串結束位置($),忽略多行模式
import relist = re.findall(r"\bis\b", "this is a test")
print list # ['is'] is 左右兩邊都不是數字字母下劃線的只有乙個,即第二個is匹配成功(左右兩邊都是空格)。
list = re.findall(r"\bis\b", "this_is a test")
print list # is 左右兩邊都不是數字字母下劃線的沒有乙個。
原始字串
str = "\nabc"print str # abc
str = "\\nabc"
print str # \nabc
str = r"\nabc"
print str # \nabc
import restr = "\\nabc"
print str # \nabc
str = r"\nabc"
print str # \nabc
res = re.match("\\\\nabc", str)
print res.group(0) # \nabc
res = re.match(r"\\nabc", str)
print res.group(0) # \nabc
# str = "\\nabc" = r"\nabc"
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模組的講解很簡單易懂,內容不多但起碼把人領進門了,...