re.findall()
是 Python 中 re
模块提供的一个函数,用于在字符串中查找所有匹配某个正则表达式的子串,并返回一个包含所有匹配子串的列表。
以下是 “re.findall()” 函数的基本使用方法:
import re
# 定义一个字符串
text = "Hello, my name is Alice. My email is alice@example.com."
# 使用 re.findall() 函数查找所有匹配的邮箱地址,并将其放入列表"emails"中
emails = re.findall(r'\b\w+@\w+\.\w+\b', text)
# 打印所有匹配的邮箱地址
print(emails)
输出结果:
['alice@example.com']
其中,正则表达式(r'\b\w+@\w+\.\w+\b)的含义为:
r
:这表示Python中的原始字符串(raw string),他告诉Python 解释器不要对字符串中的特殊字符进行转义处理。这通常在编写正则表达式时很有用,因为正则表发式本身包含了许多反斜杠(\),而原始字符串可以-
\b
:这表示一个单词边界,用于匹配单词的开始或结束。 -
\w+
:这表示一个或多个(+
)单词字符(字母、数字或下划线)。 -
@
:这表示一个字符,简单地匹配电子邮件地址中的 @ 符号。 -
\w+
:这又表示一个或多个单词字符。 -
\.
:这表示一个普通的句点(.
),需要转义为\.
,因为.
在正则表达式中具有特殊意义,匹配任意字符。 -
\w+
:这又表示一个或多个单词字符。 -
\b
:最后一个\b
表示另一个单词边界,用于匹配单词的结束
另外需要注意的是re.findall()
函数返回的列表中的元素,就是匹配到的子串,不会返回匹配对象。同时,如果findall 没有找到任何的匹配字符,则他会返回一个空列表[],这是因为findall 函数总是返回一个列表,无论是否找到了匹配项