【发布时间】:2023-04-06 20:40:02
【问题描述】:
我想在前端解析 Jinja 函数,如下所示:
{{ some_tag('firstarg', 'secondarg', 'thirdarg', 'fourtharg') }}
但我不知道会有多少参数。那我做了什么?我写了以下正则表达式:
{{\W*some_tag\W*\((['"](.*)['"],\W*){0,}['"](.*)['"]\)}}
但是,当我运行这个正则表达式时,我得到如下输出:
matches = regex.exec("{{ some_tag('firstarg', 'secondarg', 'thirdarg', 'fourtharg') }}")
matches:
"{{ some_tag('firstarg', 'secondarg', 'thirdarg', 'fourtharg')}}",
"'firstarg', 'secondarg', 'thirdarg'",
"'firstarg', 'secondarg', 'thirdarg'",
"'fourtharg'"
但这不是我想要的。我需要一种方法来匹配内括号,这样我就只有对应于firstarg、secondarg、thirdarg 和fourtharg 的变量。
我如何得到这个?
【问题讨论】:
-
对于初学者来说,最内层括号的一个好的正则表达式是:
/\(([^()]*)\)/,内容将在$1中
标签: javascript regex