如何通过在python中添加变量来重用模式

时间:2015-09-17 03:34:02

标签: python

我试图通过简单地改变模式中的索引(例如,L1,L2 ......)而不是创建多个模式来重用多个模式但我不知道如何用“i”替换模式中的变量”。我的程序是检查每行中的三个模式,如果有任何字符串匹配三个模式之一,则增加计数。 我从下面开始,但无法完成。任何人都知道如何使这项工作? 感谢,

 patterns = ['Test\(L{0}\)ABCDE'.format,
             'Test\(L{0}\)EFIGH'.format,
             'Test\(L{0}\)IJKLM'.format,
             ]
 for i in range(1,20):
     output_format = "|".join(pattern)        
     count = sum(1 for line in myfile if re.search(output_format, %i, line))

1 个答案:

答案 0 :(得分:0)

您需要模式列表中的字符串,而不是对其format方法的引用,然后您希望在每个字符串上调用format方法,将迭代变量传递给该方法。未经测试的代码:

patterns = ['Test\(L{0}\)ABCDE',
           'Test\(L{0}\)EFIGH',
           'Test\(L{0}\)IJKLM',
           ]
for i in range(1,20):
    expression = "|".join(pattern.format(i) for pattern in patterns)        
    count = sum(1 for line in myfile if re.search(expression, line))