使用 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)

代码解析

  1. 导入 re 库:import re
  2. 定义待提取文本:text = '...'
  3. 定义电话号码匹配模式:phone_pattern = re.compile(r'\d{2,5}-\d{7,8}')
    • \d 匹配任意数字
    • {2,5} 表示匹配 2 到 5 个数字
    • - 匹配连字符
    • {7,8} 表示匹配 7 到 8 个数字
  4. 提取电话号码:phones = phone_pattern.findall(text)
    • findall() 函数返回所有匹配到的结果
  5. 打印提取到的电话号码: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 地址。您可以根据具体的需求调整正则表达式模式,以匹配不同的数据格式。

Python 正则表达式提取电话号码、邮箱地址和 IP 地址

原文地址: https://www.cveoy.top/t/topic/mANp 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录