「不同
p = re.compile(」["+a+"]")
for i in a:
if p.match(i):
print 「[%s] is match」 %i
else:
print 「[%s] is not match」 %i
在中包含本身,表示"[「或者」]"匹配.用[和]表示.
出現在的開頭,表示取反.[abc]表示除了a,b,c之外的所有字元。^沒有出現在開頭,即於身身匹配。
-可表示範圍.[a-za-z]匹配任何乙個英文本母。[0-9]匹配任何數字。
在中的妙用。
d [0-9]
d [^0-9]
s s [^
]w [a-za-z0-9_]
w [^a-za-z0-9_]
表示和tab匹配, 其他的都和字串的表示法一致
表示和十六進製制ascii 0x20匹配
有了,可以在中表示任何字元。注:單獨的乙個".「如果沒有出現中,表示出了換行 以外的匹配任何字元,類似[^ ].
regexp的重複
表示出現m個以上(含m個),n個以下(含n個). 如abc和abc,abbc,abbbc匹配,不會與ac,abbbc匹配。
m是下界,n是上界。m省略表下界是0,n省略,表上界無限大。
表示 +表示 ?表示
最大匹配和最小匹配 python都是最大匹配,如果要最小匹配,在,+,?,後面加乙個?.
match object的end可以得到匹配的最後乙個字元的位置。
re.compile(「a*」).match(『aaaa』).end() 4 最大匹配
re.compile(「a*?」).match(『aaaa』).end() 0 最小匹配
使用原始字串
字串表示方法中用\表示字元.大量使用影響可讀性。
解決方法:在字串前面加乙個r表示raw格式。
a = r"a」 print a 結果是a
a = r"「a」 print a 結果是"a
使用re模組
先用re.compile得到乙個regexobject 表示乙個regexp
後用pattern的match,search的方法,得到matchobject
再用match object得到匹配的位置,匹配的字串等資訊
regxobject常用函式:
>>> re.compile(「a」).match(「abab」) 如果abab的開頭和re.compile(「a」)匹配,得到matchobject
<_sre.sre_match object at 0x81d43c8>
>>> print re.compile(「a」).match(「bbab」)
none 注:從str的開頭開始匹配
>>> re.compile(「a」).search(「abab」) 在abab中搜尋第乙個和re_obj匹配的部分
<_sre.sre_match object at 0x81d43c8>
>>> print re.compile(「a」).search(「bbab」)
<_sre.sre_match object at 0x8184e18> 和match()不同,不必從開頭匹配
re_obj.findall(str) 返回str中搜尋所有和re_obj匹配的部分.
返回乙個tuple,其中元素是匹配的字串.
matchobject的常用函式
m.start() 返回起始位置,m.end()返回結束位置(不包含該位置的字元).
m.span() 返回乙個tuple表示(m.start(), m.end())
m.pos(), m.endpos(), m.re(), m.string()
m.re().search(m.string(), m.pos(), m.endpos()) 會得到m本身
m.finditer()可以返回乙個iterator,用來遍歷所有找到的matchobject.
for m in re.compile("[ab]").finditer(「tatbxaxb」):
print m.span()
高階regexp
| 表示聯合多個regexp. a b兩個regexp,a|b表示和a匹配或者跟b匹配.
^ 表示只匹配一行的開始行首,^只有在開頭才有此特殊意義。
$ 表示只匹配一行的結尾
a 表示只匹配第一行字串的開頭 ^匹配每一行的行首
z 表示只匹配行一行字串的結尾 katex parse error: expected 'eof', got '#' at position 122: …match("info ") #̲使用raw格式 表示單詞邊界 …(參見上例)
verbose, x verbose模式↩︎
Python中常用函式
python中常用函式 1 range 函式 函式定義 返回值 返回乙個遞增或遞減的數字列表,列表的元素值由三個引數決定 start表示列表開始的值,預設為 0 stop 表示列表結束的值,該引數不可缺少 引數step表示步長,預設值為 1 range 返回的是乙個遞增或遞減的數字列表。例1 ran...
python中常用內建函式
1.eval 執行乙個字串表示式的值,並返回表示式的值。2.map function,iterable 會根據提供的函式對指定序列做對映。第乙個引數function以引數序列中每乙個元素呼叫function函式,返回包含每次function函式返回值的新列表 map lambda x x 2,1,2...
python中常用的內建函式
近來在自學python語言,為了日後能快速複習,特持續做下總結 1.issubclass subclass1,superclass1 如果subclass1是superclass1的子類,issubclass返回true,否則返回false 2.isinstance instance name,cl...