re.match 函数不检测文件中的行

re.match function doesn't detect line in file

我想检测“”部分在哪一行。我用 python 给它。 我使用了 re.match(),但它没有检测到那条明显的线:

import re
filereader = open("template.html", "r") 
template = filereader.readlines()
filereader.close()
for d in range(len(template)):
    if re.match(r'.*<body onload="init(0,0);">.*',template[d]):
        wherebody = d
        break
print(wherebody)

哪里出错了? 注意:HTML 文件具有

如您在此示例中所见:https://regex101.com/r/6JcYhk/1,您的正则表达式无法将文本与 <body onload="init(0,0);"> 匹配。这是因为 () 被解释为 Regex 组开始和结束标记。您可以通过转义这些字符来解决此问题,这些字符与文字 () 相匹配:

...
    if re.match(r'.*<body onload="init\(0,0\);">.*',template[d]):
...

(你可以在前面的例子中尝试一下,你会发现它开始匹配了)