我在 HTML 文件中插入了自定义标签,如 {{name}}、{{surname}}。现在我想搜索与 {{world}} 这样的模式完全匹配的标签,甚至连 {world}}、{{world}、{world}、{word}、{{world}}等。 我为
re.findall(r'\{(\w.+?)\}', html_string)
它返回遵循 {{world}} ,{world},{world}} 模式的单词 我不想要的。我想完全匹配 {{world}}。有人可以指导我吗?
请您参考如下方法:
嗯,正则表达式不应该是:
'\{\{(\w.+?)\}\}'
好的,评论之后,我更明白你的要求了:
'\{\{\w+?\}\}'
应该适合你。
基本上,您需要{{任意 n 个单词字符,包括下划线}}。实际上,在这种情况下您甚至不需要惰性匹配,因此您可以删除表达式中的 ?。
像 {{keyword1}} other stuff {{keyword2}} 这样的东西现在不会作为一个整体匹配。
要仅获取关键字而不获取 {{}},请使用以下方法:
'(?<=\{\{)\w+?(?=\}\})'
