Python re.findall() 方法

Python re 模块 Python re 模块


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)

运行结果预期:

找到的数字: ['3', '5', '8']

示例 2:查找所有单词

实例

import re

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)

运行结果预期:

找到的邮箱: [('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)

运行结果预期:

所有手机号: ['138-1234-5678', '139-9876-5432', '137-5555-8888']

Python re 模块 Python re 模块