You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python识别文本中的IP地址并在同行追加指定子网掩码

可行实现方案

核心逻辑说明

  1. 先全量读取文件所有行,避免边读边写导致的文件内容异常
  2. 用re.sub()方法直接对行内匹配到的IPv4地址做替换,自动在IP后追加子网掩码,无需手动判断匹配结果
  3. 所有行处理完成后统一写回原文件

原代码问题排查

  • 第二次打开文件使用只读模式r,无写入权限,且文件对象没有append()方法
  • re.match()从行首开始匹配规则,你的IP在host字段之后,无法匹配成功
  • 直接对原文件做增量写入容易导致内容错乱,建议全量处理后再覆写

可直接运行代码

import re

# 读取源文件所有内容
with open("test.txt", "r", encoding="utf-8") as f:
    content = f.readlines()

processed = []
# 匹配IPv4的正则,如需严格校验合法IP可替换为更严谨的规则
ip_reg = r"(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})"
for line in content:
    # 匹配到IP则在后方追加子网掩码,未匹配则返回原行
    new_line = re.sub(ip_reg, r"\1 255.255.255.255", line)
    processed.append(new_line)

# 处理完成后写回原文件
with open("test.txt", "w", encoding="utf-8") as f:
    f.writelines(processed)

可选优化:严格匹配合法IPv4

如果需要避免匹配到999.999.999.999这类非法IP,可将正则规则替换为:
r"((?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)"

内容的提问来源于stack exchange,提问作者point

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.09 12:27:04