常规表达式列表

时间:2018-10-15 22:22:05

标签: python python-3.x

我正在尝试创建正则表达式列表,但会自动添加一个新的'\'

a = ['\s+ interface *', '\s+ address', '\s+ priority \d']

>>> a[2]
'\\s+ priority \\d'

我尝试做这样的事情

with open('conf.txt') as f:
   lines = f.readlines()

for i in lines:
    for s in a:
        if bool(re.match(s, i)):
            print('i')

所以基本上我有一个配置文件,我想找到一些特定的命令(列表a)。因此,该命令具有一种格式,因此我需要一个正则表达式。

我想做等同于此的事情:

for i in lines:
    if bool(re.match('\s+ interface *', a)):
        print('i')
    elif bool(re.match( '\s+ address', a)):
        print('i')
    elif bool(re.match( '\s+ priority \d', a)):
        print('i')

2 个答案:

答案 0 :(得分:0)

您的列表中确实包含单个斜杠。如果要打印字符串,请尝试这样操作:

a = ['\s+ interface *', '\s+ address', '\s+ priority \d']

print( '%s'%a[0] )

输出将是

\s+ interface *

请注意,它只有一个斜杠。

答案 1 :(得分:0)

该想法按预期工作。我的问题是正则表达式本身。