【发布时间】:2021-07-02 06:10:16
【问题描述】:
在下面的数据中找到“10.10.10.1”,如果找到匹配项,则返回其父行“ip access-list extended test2”和匹配行“permit ip host 10.10.10.1 any log”
输入: 数据列表=
ip access-list extended test2 10.10.10.1
ip access-list extended test1
deny tcp any eq tacacs any
permit ip any any
ip access-list extended test2
permit ip any any
permit ip host 10.10.10.1 any log
permit icmp host 10.10.10.1 any
permit tcp any any eq 22
permit tcp any any eq tacacs
permit tcp any any
permit udp any any
ip access-list extended test3
permit udp any any eq 123 log
permit udp any any eq 1234 log
permit ip any any
输出应该是:
ip access-list extended test2
permit ip host 10.10.10.1 any log
这是我尝试过的,但我只能返回匹配行我不知道如何匹配父行
final_list = []
for LINE in data_list:
if re.search(r'\b{}\b'.format('10.10.10.1'), LINE):
final_list.append(LINE)
print(final_list)
【问题讨论】:
-
如何识别父母?有缩进吗?
-
您能否也添加您目前尝试过的代码/sn-ps,以及您面临的问题(如果有)?
-
它必须识别子行上方的哪一行在行首没有空格或制表符。
-
我添加了到目前为止我尝试过的内容,但它只返回匹配的行。我不知道如何将其父行置于子行之上。
-
如果行首没有空格,则可以识别父行。如果开头有空格,则都是父行的子行
标签: python python-3.x regex