Python re.findall() 方法
re.findall() 是 Python re 模块中用于查找所有匹配项的函数。
它会扫描整个字符串,返回所有与正则表达式匹配的子串,以列表形式返回。
单词释义: find all 是查找所有的意思。
基本语法与参数
re.findall() 是一个模块级函数。
语法格式
re.findall(pattern, string, flags=0)
参数说明
- pattern:正则表达式模式
- string:被搜索的字符串
- flags:可选,正则表达式标志
函数说明
- 返回值: 返回一个列表,包含所有匹配的字符串。如果没有匹配,返回空列表。
- 特点: 返回所有匹配项,不仅仅是第一个。
实例
示例 1:查找所有数字
实例
import re
text = "我有3个苹果,5个橙子,8个香蕉"
# 查找所有数字
result = re.findall(r'\d+', text)
print("找到的数字:", result)
text = "我有3个苹果,5个橙子,8个香蕉"
# 查找所有数字
result = re.findall(r'\d+', text)
print("找到的数字:", result)
运行结果预期:
找到的数字: ['3', '5', '8']
示例 2:查找所有单词
实例
import re
text = "Python is powerful, Python is easy"
# 查找所有 "Python"
result = re.findall(r'Python', text)
print("找到的Python:", result)
text = "Python is powerful, Python is easy"
# 查找所有 "Python"
result = re.findall(r'Python', text)
print("找到的Python:", result)
运行结果预期:
找到的Python: ['Python', 'Python']
示例 3:使用分组提取多个内容
实例
import re
text = "邮箱: [email protected], 邮箱: [email protected]"
# 使用分组同时提取用户名和域名
result = re.findall(r'(\w+)@(\w+\.\w+)', text)
print("找到的邮箱:", result)
text = "邮箱: [email protected], 邮箱: [email protected]"
# 使用分组同时提取用户名和域名
result = re.findall(r'(\w+)@(\w+\.\w+)', text)
print("找到的邮箱:", result)
运行结果预期:
找到的邮箱: [('test', 'example.com'), ('admin', 'test.org')]
示例 4:查找所有手机号
实例
import re
text = "张三: 138-1234-5678, 李四: 139-9876-5432, 王五: 137-5555-8888"
# 查找所有手机号
result = re.findall(r'\d{3}-\d{4}-\d{4}', text)
print("所有手机号:", result)
text = "张三: 138-1234-5678, 李四: 139-9876-5432, 王五: 137-5555-8888"
# 查找所有手机号
result = re.findall(r'\d{3}-\d{4}-\d{4}', text)
print("所有手机号:", result)
运行结果预期:
所有手机号: ['138-1234-5678', '139-9876-5432', '137-5555-8888']
Python re 模块
点我分享笔记