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']
在这个例子中,\.
表示一个普通的点字符,而不是正则表达式中的任意字符。$
表示字符串的结尾。