複製代碼 代碼如下:
# -*- coding: cp936 -*-
import re
s1 = 'adkkdk'
s2 = 'abc123efg'
an = re.search('^[a-z]+$', s1)
if an:
print 's1:', an.group(), '全為小寫'
else:
print s1, "不全是小寫!"
an = re.match('[a-z]+$', s2)
if an:
print 's2:', an.group(), '全為小寫'
else:
print s2, "不全是小寫!"
1. Regex不是python的一部分,利用時需要引用re模組
2. 匹配的形式為: re.search(Regex, 帶匹配字串)或re.match(Regex, 帶匹配字串)。兩者區別在於後者預設以開始符(^)開始。因此,
re.search('^[a-z]+$', s1) 等價於 re.match('[a-z]+$', s2)
3. 如果匹配失敗,則an = re.search('^[a-z]+$', s1)返回None
group用於把匹配結果分組
複製代碼 代碼如下:
import re
a = "123abc456"
print re.search("([0-9]*)([a-z]*)([0-9]*)",a).group(0) #123abc456,返回整體
print re.search("([0-9]*)([a-z]*)([0-9]*)",a).group(1) #123
print re.search("([0-9]*)([a-z]*)([0-9]*)",a).group(2) #abc
print re.search("([0-9]*)([a-z]*)([0-9]*)",a).group(3) #456
1)Regex中的三組括弧把匹配結果分成三組
group() 同group(0)就是匹配Regex整體結果
group(1) 列出第一個括弧匹配部分,group(2) 列出第二個括弧匹配部分,group(3) 列出第三個括弧匹配部分。
2)沒有匹配成功的,re.search()返回None
3)當然鄭則運算式中沒有括弧,group(1)肯定不對了。