python在文本中提取电子邮箱地址
时间: 2024-01-04 21:04:15 浏览: 205
可以使用正则表达式来提取电子邮箱地址,例如:
```python
import re
text = "Hello, my email address is abc123@example.com. Please contact me at john.doe@hotmail.com."
pattern = r"\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b"
emails = re.findall(pattern, text)
print(emails)
```
输出结果为:
```
['abc123@example.com', 'john.doe@hotmail.com']
```
解释一下正则表达式的含义:
- `\b`:单词边界,确保匹配的是完整的电子邮箱地址。
- `[A-Za-z0-9._%+-]+`:匹配电子邮箱地址的用户名部分,包括字母、数字、下划线、点、百分号、加号、减号。
- `@`:匹配电子邮箱地址中的“@”符号。
- `[A-Za-z0-9.-]+`:匹配电子邮箱地址中的域名部分,包括字母、数字、点、减号。
- `\.`:匹配电子邮箱地址中的“.”符号,需要转义。
- `[A-Z|a-z]{2,}`:匹配电子邮箱地址中的顶级域名部分,包括至少两个字母。
注意,这只是一个简单的正则表达式,无法匹配所有可能的电子邮箱地址,例如包含中文字符的邮箱地址。如果需要更严格的匹配,可以参考RFC 5322规范中的电子邮箱地址格式定义。
阅读全文