首页 > 解决方案 > Python中的匹配字符

问题描述

我是一个初学者程序员,我不能得到这个。需要调用包含数据和匹配字符 (*) 的 .txt 文件并返回值。

.txt 文件包含以下数据:

Zone : Server1
       00:88:41:oc*
       12:11:ee:41
Zone : Server2
       1e:41:eq:re
       oc:41:31:26
Zone : Server3
       00:88:41:ae*
       1e:19:ee:46

因此,由于最后有一个 (*),它应该返回“区域”名称..预期结果是:

Server1
Server3

我正在尝试什么:

import re
s = open('./myfile.txt','r').read()
fp = open('./output.txt', 'w')
for zone in s.split("zone"):
    m = re.search(r"\w+\*", zone)
    if m:
        fp.write(zone.splitlines()[0].strip(" :"))

标签: regexpython-2.7

解决方案


这是一种方法。

前任:

import re

s = """Zone : Server1
       00:88:41:oc*
       12:11:ee:41
Zone : Server2
       1e:41:eq:re
       oc:41:31:26
Zone : Server3
       00:88:41:ae*
       1e:19:ee:46"""

for zone in s.split("Zone"):             #Separate Each zone
    m = re.search(r"\w+\*", zone)        #Check for *
    if m:
        print(zone.splitlines()[0].strip(" :"))   #Get first line. 

输出:

Server1
Server3

推荐阅读