我想检索lambda表达式中的自由变量。 例如
\z.\x.(xy)
,其中“\”代表Lambda符号:通过正则表达式,我需要获得所有不遵循反斜杠的字母。 在我的例子中,自由变量将是
{y}
因为“y”是唯一不限于“\”的变量。 我怎么能这样做? 提前谢谢。
答案 0 :(得分:1)
您可以使用/\\(\w+)/g
并使用exec
:
var r = /\\(\w+)/g, m,
s = "\\z.\\x.(xy)";
while (m = r.exec(s)) console.log(m[1]);
它会记录"z"
然后"x"
。
回答新问题:
要在\
之后获取名称而不是,您可以使用/([^\\]|^)(\w+)/g
(并使用第二个捕获组,它是返回数组中的第三个元素)。< / p>