使用正则表达式提取文本所有的邮箱号。
时间: 2024-05-14 20:12:39 浏览: 183
以下是使用Python代码提取文本中的所有邮箱地址的示例:
```python
import re
text = "请联系我:example@mail.com,或者给我发邮件到anotherexample@gmail.com。"
emails = re.findall(r'\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b', text)
print(emails)
```
输出结果为:
```
['example@mail.com', 'anotherexample@gmail.com']
```
解释一下代码:
- `re.findall()` 函数用于在字符串中查找所有匹配的模式,并返回一个列表。
- 正则表达式 `\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b` 匹配一个完整的电子邮件地址。其中:
- `\b` 表示单词边界,确保匹配的是一个完整的地址。
- `[A-Za-z0-9._%+-]+` 匹配邮件地址中的用户名部分,其中包括大小写字母、数字、以及一些特殊字符。
- `@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}` 匹配邮件地址中的域名部分,其中包括一个 `@` 符号,后面是一个域名,包括大小写字母、数字、点号以及短横线,最后是一个顶级域名,包括大小写字母,长度至少为2。
- `\b` 再次表示单词边界,确保匹配的是一个完整的地址。
注意:正则表达式中的特殊字符需要使用反斜杠 `\` 进行转义,因此在字符串中需要写成 `\\`。
阅读全文