re庫中()、[]、{}區別

以字符串line爲示例,通過是使用()、【】、{}進行數據篩選,進一步瞭解re庫中表達式的使用。

line  = 'Cats are smarter than dogs.'

()以元組的格式返回匹配結果:

searchObj = re.match('(.*)are ((.*?) .*)', line)
# 返回的searchObj 爲 _sre.SRE_Match 類型數據

if searchObj != None:
    print type(searchObj)
    for obj in searchObj.groups():
        print type(obj)
        print obj
                
# 留意輸出的匹配結果
# * 零到多個
# ?零或一個
# 括號的順序:外層括號匹配結果在前,裏面在後

[]完全符合匹配規則,輸出匹配結果

searchObj = re.match('C[t,a]', line)
# 完全符合匹配規則,輸出匹配結果
# C後面如果爲t或者a,符合匹配規則

if searchObj != None:
    print type(searchObj)
    print searchObj.group()
    

{}匹配{m,n}前的字符m到n次

searchObj = re.findall('a{0,3}r', line)
# 匹配{m,n}前的字符m到n次
# 配置r前的a 0-3次
if searchObj != None:
    print type(searchObj)
    for obj in searchObj:
        print type(obj)
        print obj
    print searchObj

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章