Lookahead函数语法错误(正则表达式)

时间:2016-03-11 06:41:17

标签: python regex python-3.x syntax-error syntax-highlighting

嘿伙计们我正在弹出一个'无效语法'并突出显示'?'在我的代码中。的?是前瞻功能的元字符,但我不知道为什么它不起作用。这是我的代码:

import os
import re

def main ():

    file = open (os.path.expanduser('~/Desktop/Assignment 3/motifFinding.txt'))
    data = file.read().split()

    s = data[0] 
    t = data[1]

    x = [m.start() for m in re.finditer(?=t,s)] 

    print (x)

main()

请帮忙!

非常感谢

P.S。我正在使用Mac

1 个答案:

答案 0 :(得分:1)

看起来你正试图以某种方式使用变量t进行前瞻('(?=...)')。前瞻组由括号组成,括号在左括号后面有?=

请记住,字符串需要用引号括起来,但变量必须在字符串之外。

如果t表示您正在尝试预测的正则表达式,则可以使用字符串连接将其置于前瞻组('(?=THIS THING)')中。示例:'(?=' + t + ')'