在Python中匹配字符

时间:2019-03-29 11:37:32

标签: regex python-2.7

我是一个初学者程序员,我无法理解。需要调用一个包含数据和匹配字符(*)的.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(" :"))

1 个答案:

答案 0 :(得分:0)

这是一种方法。

例如:

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