代碼如下:
# -*- 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. 正則表達式不是python的一部分,利用時需要引用re模塊
2. 匹配的形式為: re.search(正則表達式, 帶匹配字串)或re.match(正則表達式, 帶匹配字串)。兩者區別在于后者默認以開始符(^)開始。因此,
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)正則表達式中的三組括號把匹配結果分成三組
group() 同group(0)就是匹配正則表達式整體結果
group(1) 列出第一個括號匹配部分,group(2) 列出第二個括號匹配部分,group(3) 列出第三個括號匹配部分。
2)沒有匹配成功的,re.search()返回None
3)當然鄭則表達式中沒有括號,group(1)肯定不對了。
新聞熱點
疑難解答