Logo Wand.Tools

正则表达式生成器

智能生成和解释正则表达式,支持各种常见模式匹配

正则表达式匹配IP地址全教程(含代码示例)

  # 正则表达式匹配IP地址全教程(含代码示例)
  
  本教程详细介绍如何使用正则表达式匹配IPv4和IPv6地址,适用于日志分析、数据清洗、安全过滤等场景。支持多语言实现,附带正则表达式语法详解与常见示例,帮助你快速掌握IP地址匹配技巧。
  
  ## 📌 正则表达式匹配IPv4地址
  
  IPv4地址由四个0~255之间的数字构成,每个数字之间以点号`. `分隔。
  
  ### ✅ IPv4正则表达式
  
  ```regex
  \b(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)(?:\.|$)){4}\b

🧪 示例代码(Python)

import re

pattern = r'\b(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)(?:\.|$)){4}\b'
text = "有效IP地址:192.168.1.1,错误IP:256.300.88.1"

matches = re.findall(pattern, text)
print("匹配结果:", matches)

🌐 正则表达式匹配IPv6地址

IPv6地址由8组16进制数构成,使用冒号 : 分隔,可使用缩写形式 :: 表示连续的零字段。

✅ IPv6正则表达式

\b((?:(?:[0-9a-fA-F]{1,4}):){7}[0-9a-fA-F]{1,4}|(?:[0-9a-fA-F]{1,4}:){1,7}:|:(?::[0-9a-fA-F]{1,4}){1,7}|::)\b

🧪 示例代码(Python)

import re

pattern = r'\b((?:(?:[0-9a-fA-F]{1,4}):){7}[0-9a-fA-F]{1,4}|(?:[0-9a-fA-F]{1,4}:){1,7}:|:(?::[0-9a-fA-F]{1,4}){1,7}|::)\b'
text = "示例IPv6地址:2001:0db8:85a3:0000:0000:8a2e:0370:7334,简写形式::1"

matches = re.findall(pattern, text)
print("匹配结果:", matches)

🚀 多语言支持

JavaScript 示例

const ipv4Regex = /\b(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)(?:\.|$)){4}\b/g;
const text = "IP地址包括127.0.0.1和999.999.999.999";
const matches = text.match(ipv4Regex);
console.log("匹配结果:", matches);

🔍 正则表达式要点总结

  • 25[0-5]:匹配250~255之间的数字
  • 2[0-4]\d: 匹配200~249
  • 1\d{2}: 匹配100~199
  • [1-9]?\d: 匹配0~99
  • (?:...): 非捕获分组
  • \b: 单词边界,确保匹配完整的IP