Python搜索和打印值

Python搜索和打印值,python,python-2.7,Python,Python 2.7,下面是文件输出的示例 vNIC Template: Name: vNIC-120-A Type: Updating Template Fabric ID: A B Ethernet Interface: Name: 2-native Dynamic MAC Addr: Derived Default Network: Yes State: progress Name: nfs Dynamic MAC Addr: Derived Defa

下面是文件输出的示例

vNIC Template:
Name: vNIC-120-A
Type: Updating Template
Fabric ID: A B

Ethernet Interface:
    Name: 2-native
    Dynamic MAC Addr: Derived
    Default Network: Yes
    State: progress

    Name: nfs
    Dynamic MAC Addr: Derived
    Default Network: No

    Name: vmotion
    Dynamic MAC Addr: Derived
    Default Network: No 
如何验证名称:2-本机名称2-本机是否存在

无论是否存在,我都可以使用以下代码:

Counting the "string" occurrence in a file
def count_string_occurrence():
   string = "2-native"
   f = open("search.txt")
   contents = f.read()
   f.close()
   print "Number of '" + string + "' in file", contents.count("2-native")
在我的例子中,我搜索并找到了2-Native关键字。 我想打印2-native的状态值和动态Mac地址值。以下是参考资料

    Name: 2-native
    Dynamic MAC Addr: Derived
    Default Network: Yes
    State: progress
就像我搜索“vNIC模板”
我想打印类型值和织物值。

我想您可以使用以下内容:

import re
keyword = re.escape("2-native")
result = re.findall(r"Name: {}.*?Addr: ([\w]+).*?State: (.*?)$".format(keyword), contents, re.IGNORECASE | re.DOTALL | re.MULTILINE)
if result:
    mac_addr = result[0][0]
    state = result[0][1]
    print(mac_addr, state)
    # Derived progress

你是正则表达式的一员。回答得很好。感谢@Chris!