Python 如何搜索字符串+ip地址并在找到时打印 我有以下文件:

Python 如何搜索字符串+ip地址并在找到时打印 我有以下文件:,python,python-3.x,Python,Python 3.x,地址系列ipv4 vrf vrf1 重新发布eigrp 252路线图vrf1 邻居10.1.1.1远程as 2 10.1.1.1\u ebgp的说明 邻居10.1.1.1更新源Vlan2 邻居10.1.1.1激活 邻居10.1.1.1发送社区和 邻居10.1.1.1入站软重新配置 邻居10.1.1.1入站路线图 邻居10.1.1.1出站路线图 出口地址族 我想写一些东西来打开这个文件,读取它,并在终端上打印它,只要它发现邻居[ip]路由图入站 将您的代码从“注释”部分移至“问题”,以便更方便地访

地址系列ipv4 vrf vrf1

重新发布eigrp 252路线图vrf1

邻居10.1.1.1远程as 2

10.1.1.1\u ebgp的说明

邻居10.1.1.1更新源Vlan2

邻居10.1.1.1激活

邻居10.1.1.1发送社区和

邻居10.1.1.1入站软重新配置

邻居10.1.1.1入站路线图

邻居10.1.1.1出站路线图

出口地址族

我想写一些东西来打开这个文件,读取它,并在终端上打印它,只要它发现邻居[ip]路由图入站

将您的代码从“注释”部分移至“问题”,以便更方便地访问您的代码:

import re  
filepath = 'run_bgp.txt'  
ip = re.compile(r'(^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$)') 
with open(filepath) as fp:
    filestring = fp.readlines()
    for line in filestring:
        x = line.split(' ')
        if x[0] == 'neighbor' and x[1] == re.compile(r'(^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$)') and x[2] == 'route-map' and x[3] == 'INBOUND' and x[4] == 'in':
            print(' '.join(x))


import re

data = ""
with open("run_bgp.txt", "r") as file:
    lines = file.readlines()
    for line in lines:
        data += line


result = re.search("neighbor.*route-map INBOUND in", data).group()
print(result)
方法一

方法二

在我们的示例中,假设将一行指定给变量x

x = x.split(' ')
if x[0] == 'neighbor' and x[2] == 'route-map' and x[3] == 'INBOUND' and x[4] == 'in':
    print(' '.join(x))

下面是另一个解决方案,使用all


如果结果格式与问题中描述的相同,则可以使用正则表达式提取结果,如下所示:

data = ""
with open("filename", "r") as file:
    lines = file.readlines()
    for line in lines:
        data += line

import re
        
result = re.search("neighbor.*route-map INBOUND in", data).group()
print(result)
结果将是:

neighbor 10.1.1.1 route-map INBOUND in

尝试使用。我使用正则表达式,但它只能找到它,我不知道如何打印它out@user2251348,我将您的代码移到问题。最好是现身there@sushanth现在,如果我想知道找到并打印的行属于address系列ipv4 vrf1,我该如何包括that@Ahmad_R您期望的结果在结果变量中。您可以使用printresult打印结果,您将获得所需的输出。AttributeError:“NoneType”对象没有属性“group”打印结果时出错是否将文件名替换为文件的绝对路径?我不确定为什么会获得AttributeError:“NoneType”对象没有属性“group”
data = ""
with open("filename", "r") as file:
    lines = file.readlines()
    for line in lines:
        data += line

import re
        
result = re.search("neighbor.*route-map INBOUND in", data).group()
print(result)
neighbor 10.1.1.1 route-map INBOUND in