python 正则表达式 - 列表中的 re.findall()

作者:编程家 分类: regex 时间:2025-10-23

使用Python中的正则表达式可以对文本进行高效的模式匹配和提取。其中,re.findall()是一个非常常用的函数,它可以在给定的字符串中查找符合指定模式的所有子串,并将其以列表的形式返回。

下面我们将介绍re.findall()的用法,并通过一个案例代码来演示它的实际应用。

首先,让我们来了解一下re.findall()的基本用法。该函数的语法如下:

re.findall(pattern, string, flags=0)

其中,pattern是要匹配的模式,string是要进行匹配的字符串,flags是可选参数,用于指定匹配模式。该函数会返回一个包含所有匹配子串的列表。

接下来,我们通过一个简单的例子来说明re.findall()的用法。假设我们有一个包含多个电话号码的字符串,我们想要将其中的所有电话号码提取出来。

import re

text = "我的电话号码是:010-12345678,你的电话号码是:020-87654321。"

phone_numbers = re.findall(r'\d{3}-\d{8}', text)

print("提取到的电话号码为:", phone_numbers)

运行上述代码,输出结果如下:

提取到的电话号码为: ['010-12345678', '020-87654321']

可以看到,re.findall()成功提取出了字符串中的所有电话号码,并以列表的形式返回。

在上述例子中,我们使用了正则表达式的\d{3}-\d{8}模式来匹配电话号码。其中\d表示匹配任意数字,{3}表示匹配前面的\d三次,-表示匹配字符“-”,\d{8}表示匹配任意数字8次。

使用re.findall()函数可以方便地从文本中提取出符合指定模式的子串,实现了快速、高效的文本处理。在实际应用中,我们可以根据不同的需求,使用不同的正则表达式模式来进行匹配和提取。

案例代码:提取邮箱地址

在上述例子中,我们提取了电话号码。下面,我们将通过一个新的例子来演示如何使用re.findall()函数提取邮箱地址。

import re

text = "我的邮箱是:test@example.com,你的邮箱是:hello@gmail.com。"

email_addresses = re.findall(r'\w+@\w+\.\w+', text)

print("提取到的邮箱地址为:", email_addresses)

运行上述代码,输出结果如下:

提取到的邮箱地址为: ['test@example.com', 'hello@gmail.com']

可以看到,re.findall()函数成功提取出了字符串中的所有邮箱地址,并以列表的形式返回。

在上述例子中,我们使用了正则表达式的\w+@\w+\.\w+模式来匹配邮箱地址。其中\w表示匹配任意字母、数字或下划线,+表示匹配前面的\w一次或多次,@表示匹配字符“@”,\.表示匹配字符“.”,\w+表示匹配任意字母、数字或下划线一次或多次。

通过本文的介绍,我们了解了Python中正则表达式re.findall()函数的基本用法,以及它在实际应用中的一些案例。re.findall()函数可以方便地对文本进行模式匹配和提取,为我们的文本处理带来了很大的便利。

无论是提取电话号码、邮箱地址,还是其他类型的文本信息,我们都可以使用re.findall()函数来快速、高效地实现。希望本文能帮助到大家,让大家在日常工作中能更好地利用正则表达式来处理文本数据。