使用for循环和re.search在同一行中使用模式中的变量

时间:2016-12-07 20:06:36

标签: python python-2.7

我正在尝试搜索一行中的特定模式。模式来自列表。我尝试使用以下逻辑,但它的语法错误。我不明白这个原因。有人可以解释一下吗?我在下面列出了我的代码中的要求,

  1. 我需要从文件的每一行搜索一个模式。
  2. 模式从列表中迭代。
  3. 我想启用模式搜索并在一行python代码中迭代列表,而不是在2行中进行迭代。

    import re
    cell = ['abc', 'def']
    line = '/* Begin cell: abc */'
    for c in cell if re.search(r".*Begin cell.*%s.*" % c, line, re.I):
        print 'Match'
    
  4. 注意到错误,

    File "<ipython-input-47-241664c42555>", line 5
        for c in cell (if re.search(r".*Begin cell.*%s.*" % c, line, re.I)):
                        ^ SyntaxError: invalid syntax
    

1 个答案:

答案 0 :(得分:0)

语法错误与forre.search无关。你不能像if这样:它需要是一个单独的声明。

for c in cell:
    if re.search(r".*Begin cell.*%s.*" % c, line, re.I):
        print 'Match'