正則表達式各種符號含義

‘\’,轉義字符

爲了逐字表達,你必須在"^.$()¦*+?{\"這些字符前加上轉移字符'\'。
請注意在方括號中,不需要轉義字符。

‘^’和’$’

'^':指出一個字符串的開始
"$":指出一個字符串的結尾
"^The":表示所有以"The"開始的字符串("There","The cat"等);
"of despair$":表示所以以"of despair"結尾的字符串;
"^abc$":表示開始和結尾都是"abc"的字符串——呵呵,只有"abc"自己了;
"notice":表示任何包含"notice"的字符串(如果不適用特殊字符,表示notice在被查找的字符串的任意部分)。
方括號中用'^'表示不希望出現的字符,'^'應在方括號裏的第一位。(如:"%[^a-zA-Z]%"表
示兩個百分號中不應該出現字母)。

‘*’,’+’和’?’,表示一個或一序列字符重複出現的次數

'*':“沒有或更多”
'+':“一次或更多”
'?':“沒有或一次”
"ab*":表示一個字符串有一個a後面跟着零個或若干個b。("a", "ab", "abbb",……);
"ab+":表示一個字符串有一個a後面跟着至少一個b或者更多;
"ab?":表示一個字符串有一個a後面跟着零個或者一個b;
"a?b+$":表示在字符串的末尾有零個或一個a跟着一個或幾個b。

‘{}’,用以表示重複次數的範圍

"ab{2}":表示一個字符串有一個a跟着2個b("abb");
"ab{2,}":表示一個字符串有一個a跟着至少2個b;
"ab{3,5}":表示一個字符串有一個a跟着3到5個b。
請注意,你必須指定範圍的下限(如:"{0,2}"而不是"{,2}")。還有,你可能注意到了,'*','+'和'?'相當於"{0,}","{1,}"和"{0,1}"。

‘¦’,表示“或”操作

"hi¦hello":表示一個字符串裏有"hi"或者"hello";
"(b¦cd)ef":表示"bef"或"cdef";
"(a¦b)*c":表示一串"a""b"混合的字符串後面跟一個"c";

‘[]’,表示某些字符允許在一個字符串中的某一特定位置出現

"[ab]":表示一個字符串有一個"a"或"b"(相當於"a¦b");
"[a-d]":表示一個字符串包含小寫的'a'到'd'中的一個(相當於"a¦b¦c¦d"或者"[abcd]");
"^[a-zA-Z]":表示一個以字母開頭的字符串;
"[0-9]%":表示一個百分號前有一位的數字;
",[a-zA-Z0-9]$":表示一個字符串以一個逗號後面跟着一個字母或數字結束。

‘.’,可以替代任何字符

"a.[0-9]":表示一個字符串有一個"a"後面跟着一個任意字符和一個數字;
"^.{3}$":表示有任意三個字符的字符串(長度爲3個字符);

預定義字符集d,D,s,S,w,W,A,Z,b,B

'\d':數字[0-9]
'\D':非數字:
'\s':匹配任何空白字符,包括空格、製表符、換頁符等等。等價於 [ \f\n\r\t\v]。
'\S':匹配任何非空白字符。等價於 [^ \f\n\r\t\v]。
'\w':匹配包括下劃線的任何單詞字符。等價於'[A-Za-z0-9_]'。
'\W':匹配任何非單詞字符。等價於 '[^A-Za-z0-9_]'。
'\A':僅匹配字符串開頭,同^
'\Z':僅匹配字符串結尾,同$
'\b':匹配單詞邊界,例如’er\b’可以匹配’never’中的’er’,但不能匹配’very’中的’er’,因爲never中的er單詞的右邊界。

針對\b,我們來舉幾個列子:

import re
W = re.findall(‘\btina’, ‘tina tinaaaa’)
Print(w)
結果:
[‘tina’, ‘tina’]。原因是因爲上述字符串可以拆分成兩個單詞,tina都是上述兩個單詞的左邊界。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章