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

Lookahead function syntax error (Regex)

大家好,我收到一个 'invalid syntax' 弹出窗口,它突出显示了 '?'在我的代码中。这 ?是前瞻函数的元字符,但我不知道为什么它不起作用。这是我的代码:

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

您似乎正试图以某种方式使用变量 t 进行前瞻 ('(?=...)')。前瞻组由括号组成,括号紧跟在左括号之后 ?=

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

如果 t 表示您尝试向前看的正则表达式,您可以使用字符串连接将其放入您的向前看组 ('(?=THIS THING)') 中。示例:'(?=' + t + ')'.