正则表达式找到连续的IP地址

时间:2016-12-07 21:26:23

标签: python regex

我终于在今天工作了很长一段时间之后不得不放弃。我试图从输出中检索所有IP地址,如下所示:

My Address: 10.10.10.1
  Explicit Route: 192.168.238.90 192.168.252.209 192.168.252.241 192.168.192.209
                  192.168.192.223
  Record   Route:

我需要从“显式路由”和“记录路由”之间提取所有IP地址。我正在使用textfsm,我似乎无法得到我需要的一切。

2 个答案:

答案 0 :(得分:1)

使用正则表达式和字符串操作:

import re
s = '''My Address: 10.10.10.1
  Explicit Route: 192.168.238.90 192.168.252.209 192.168.252.241 192.168.192.209
                  192.168.192.223
  Record   Route:'''
ips = re.findall(r'\d+\.\d+\.\d+\.\d+', s[s.find('Explicit Route'):s.find('Record   Route')])

答案 1 :(得分:0)

import re

with open('file.txt', 'r') as file:
    f = file.read().splitlines()
    for line in f:
        found = re.findall(r'(?:[\d]{1,3})\.(?:[\d]{1,3})\.(?:[\d]{1,3})\.(?:[\d]{1,3})', line)
        for f in found:
            print(f)

编辑:

我们打开txt并按行读取,然后使用常规exp对每一行进行读取。查找ip(可以有1-3个数字,然后是。并重复4次)