Python 3.4 - 使用REGEX匹配字符串,然后复制以下行

时间:2017-01-09 21:31:02

标签: python regex

我搜索了常见问题解答和其他一些REGEX网站但未找到我的问题的答案。虽然我可以成功执行匹配,但我无法找出最佳方法,然后在匹配后引用NEXT行打印或添加到列表等。这是我的pogram

with open("input.txt", mode='r') as sourcefile, open("output.txt", mode='w') as destinationfile:
    for codeline in sourcefile:
        if (re.match("interface GigabitEthernet0/[0123]", codeline)):
            print(codeline)

我的输入文件包含以下内容......

input.txt中

interface GigabitEthernet0/0
 Ip Address 10.10.10.10 255.255.255.0

当我执行此操作时,我得到以下内容...

interface GigabitEthernet0/0

但我希望得到这个......

Ip Address 10.10.10.10 255.255.255.0

此时我自己已经想出了很多,但这个微不足道的挑战让我感到沮丧。如果它与正则表达式序列匹配,如何从迭代器中打印下一行?

如果你能帮助我,请提前致谢。抱歉,这是我在Stack的第一篇文章,所以如果我没有正确格式化,我正在尝试。

2 个答案:

答案 0 :(得分:0)

只需设置一个标志即可打印以下行

print_next = False
for codeline in sourcefile:
    if print_next:
        print(codeline)
        print_next = False
    elif (re.match("interface GigabitEthernet0/[0123]", codeline)):
        print_next = True

答案 1 :(得分:0)

我能够使用next()类型来实现我的目标。

谢谢。