Python 如何搜索字符串+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]路由图入站 将您的代码从“注释”部分移至“问题”,以便更方便地访问您的代码: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]路由图入站 将您的代码从“注释”部分移至“问题”,以便更方便地访
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