Python 正则表达式提取电话号码、邮箱地址和 IP 地址
使用 Python 正则表达式提取文本中的电话号码、邮箱地址和 IP 地址
本文将介绍如何使用 Python 的正则表达式库 re 来提取文本中的电话号码、邮箱地址和 IP 地址。
示例代码
import re
text = '这是几个电话号码:020-37215850,0991-12345678,01-88664521
这是几个邮箱地址:zhangsan@abc.com,lisi@gduf.edu.cn
这是一个IP地址:192.168.2.1'
# 提取电话号码
phone_pattern = re.compile(r'\d{2,5}-\d{7,8}')
phones = phone_pattern.findall(text)
print(phones)
# 提取邮箱地址
mail_pattern = re.compile(r'\w+@\w+\.\w+(?:\.\w+)?')
emails = mail_pattern.findall(text)
print(emails)
# 提取IP地址
ip_pattern = re.compile(r'\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}')
ips = ip_pattern.findall(text)
print(ips)
代码解析
- 导入
re库:import re - 定义待提取文本:
text = '...' - 定义电话号码匹配模式:
phone_pattern = re.compile(r'\d{2,5}-\d{7,8}')\d匹配任意数字{2,5}表示匹配 2 到 5 个数字-匹配连字符{7,8}表示匹配 7 到 8 个数字
- 提取电话号码:
phones = phone_pattern.findall(text)findall()函数返回所有匹配到的结果
- 打印提取到的电话号码:
print(phones)
其他匹配模式解析类似:
-
邮箱地址模式:
\w+@\w+\.\w+(?:\.\w+)?\w+匹配一个或多个字母、数字或下划线@匹配字符@(?:\.\w+)?表示可选匹配,匹配一个或多个字母、数字或下划线,前面加?:表示非捕获组,不会被findall()函数返回
-
IP 地址模式:
\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\d{1,3}表示匹配 1 到 3 个数字\.匹配点号
总结
本文演示了如何使用 Python 正则表达式提取文本中的电话号码、邮箱地址和 IP 地址。您可以根据具体的需求调整正则表达式模式,以匹配不同的数据格式。
原文地址: https://www.cveoy.top/t/topic/mANp 著作权归作者所有。请勿转载和采集!