python re 模塊 findall 函數

>>> import re
>>> str = "abc1 def2 dcdd3 ieifn4 iner5 iusd6"
>>> reObj1 = re.compile('((\w+)\s+\w+)')
>>> reObj1.findall(str)
[('abc1 def2', 'abc1'), ('dcdd3 ieifn4', 'dcdd3'), ('iner5 iusd6', 'iner5')]
>>> reObj2 = re.compile('(\w+)\s+\w+')
>>> reObj2.findall(str)
['abc1', 'dcdd3', 'iner5']
>>> reObj3 = re.compile('\w+\s+\w+')
>>> reObj3.findall(str)
['abc1 def2', 'dcdd3 ieifn4', 'iner5 iusd6']
>>>

findall函數返回的總是正則表達式在字符串中所有匹配結果的列表,此處主要討論列表中“結果”的展現方式,即findall中返回列表中每個元素包含的信息。


reObj1.當給出的正則表達式中帶有多個括號時,列表的元素爲多個字符串組成的tuple,tuple中字符串個數與括號對數相同,字符串內容與每個括號內的正則表達式相對應,並且排放順序是按括號出現的順序。

reObj2.當給出的正則表達式中帶有一個括號時,列表的元素爲字符串,此字符串的內容與括號中的正則表達式相對應(不是整個正則表達式的匹配內容)。

reObj3.當給出的正則表達式中不帶括號時,列表的元素爲字符串,此字符串爲整個正則表達式匹配的內容。

發佈了23 篇原創文章 · 獲贊 39 · 訪問量 24萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章