【Python教程】 re 模組中findall函式返回值展現方式的用法詳解

【Python教程】 re 模組中findall函式返回值展現方式的用法詳解

findall 函式:

在字串中找到正則表示式所匹配的所有子串,並返回一個列表,如果沒有找到匹配的,則返回空列表。

注意: match 和 search 是匹配一次 findall 匹配所有,match 和 search 的區別也很大,可以自行網上查詢!

這裡主要需要討論的是其返回值的展現方式,即findall函式根據正則表示式的不同所返回的結果包含的不同資訊!

主要包含三種情況:

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

例子,正則表示式裡分了兩個組

【Python教程】 re 模組中findall函式返回值展現方式的用法詳解

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

例子,正則表示式裡有一個分組

【Python教程】 re 模組中findall函式返回值展現方式的用法詳解

3。當給出的正則表示式中不帶括號時,列表的元素為字串,此字串為整個正則表示式匹配的內容。

例子,正則表示式裡沒有分組

【Python教程】 re 模組中findall函式返回值展現方式的用法詳解

4。同樣是前面的 test 資料,要匹配出和3中同樣的結果,可以這樣寫。

例子,輸出和3中同樣的結果

【Python教程】 re 模組中findall函式返回值展現方式的用法詳解

此例子中的 (?:年|月|日) 不表示一個分組

TAG: 正則表示式字串括號匹配列表