findall()函数从字符串中提取指定模式的所有字符串
发布时间:2023-11-08 02:05:27
findall()函数是Python中re模块中的一个方法,用于在字符串中找到匹配指定模式的所有字符串,并将它们返回为一个列表。
re模块是Python中用于正则表达式操作的库。正则表达式是一种用于字符串匹配和搜索的强大工具,它可以用于检查字符串是否与特定模式匹配,提取字符串中的特定部分等等。
findall()函数的语法如下:
re.findall(pattern, string, flags=0)
其中,pattern参数指定要匹配的正则表达式模式,string参数指定要搜索的字符串,flags参数指定正则表达式的匹配标志。
以下是一些使用findall()函数的示例:
**示例 1:提取所有数字**
import re string = "I have 3 apples, 10 bananas, and 5 oranges." pattern = r'\d+' result = re.findall(pattern, string) print(result) # ['3', '10', '5']
在上面的示例中,'\d+'是一个正则表达式模式,它表示一个或多个数字。findall()函数会在字符串中找到所有匹配该模式的数字,并将它们以列表的形式返回。在这个例子中,result的值为['3', '10', '5']。
**示例 2:提取所有邮箱地址**
import re
string = "My email addresses are john@example.com and sarah@example.com."
pattern = r'\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}\b'
result = re.findall(pattern, string)
print(result) # ['john@example.com', 'sarah@example.com']
上面的示例中,'\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}\b'是一个匹配邮箱地址的正则表达式模式。findall()函数会在字符串中找到所有匹配该模式的邮箱地址,并返回它们的列表形式。在这个例子中,result的值为['john@example.com', 'sarah@example.com']。
findall()函数是一个非常有用的工具,它可以在文本处理、数据清洗、爬虫等场景中发挥重要作用。然而,要注意正则表达式的语法和规则,以确保正确地匹配和提取字符串。
