findall()
函數是 Python 中的正則表達式庫 re
中的一個方法,用于在字符串中查找所有與正則表達式匹配的子串。它可以處理特殊字符,但需要使用轉義字符或原始字符串(raw string)來避免解析錯誤。
例如,如果你想查找字符串中的所有數字,可以使用以下代碼:
import re
text = "abc123def456ghi789"
pattern = r'\d+'
result = re.findall(pattern, text)
print(result) # 輸出:['123', '456', '789']
在這個例子中,\d+
是一個正則表達式,用于匹配一個或多個數字。r
前綴表示這是一個原始字符串,這樣 Python 就不會嘗試解析 \d
作為轉義字符。
如果你想在查找中包含特殊字符,例如 .
,你需要使用 \.
來表示它本身,而不是作為特殊字符(匹配任意字符)使用。例如,如果你想查找字符串中的所有以 .txt
結尾的字符串,可以使用以下代碼:
import re
text = "abc.txtdef.txtghi.txt"
pattern = r'\.txt$'
result = re.findall(pattern, text)
print(result) # 輸出:['.txt', '.txt', '.txt']
在這個例子中,\.
表示一個普通的點字符,而不是正則表達式中的任意字符。$
表示字符串的結尾。