findall 函式:
在字串中找到正則表示式所匹配的所有子串,並返回一個列表,如果沒有找到匹配的,則返回空列表。
注意: match 和 search 是匹配一次 findall 匹配所有,match 和 search 的區別也很大,可以自行網上查詢!
這裡主要需要討論的是其返回值的展現方式,即findall函式根據正則表示式的不同所返回的結果包含的不同資訊!
主要包含三種情況:
1。當給出的正則表示式中帶有多個括號時,列表的元素為多個字串組成的tuple,tuple中字串個數與括號對數相同,字串內容與每個括號內的正則表示式相對應,並且排放順序是按括號出現的順序。
例子,正則表示式裡分了兩個組
2。當給出的正則表示式中帶有一個括號時,列表的元素為字串,此字串的內容與括號中的正則表示式相對應(不是整個正則表示式的匹配內容)。
例子,正則表示式裡有一個分組
3。當給出的正則表示式中不帶括號時,列表的元素為字串,此字串為整個正則表示式匹配的內容。
例子,正則表示式裡沒有分組
4。同樣是前面的 test 資料,要匹配出和3中同樣的結果,可以這樣寫。
例子,輸出和3中同樣的結果
此例子中的 (?:年|月|日) 不表示一個分組