我想检索 lambda 表达式中的自由变量。 例如
\z.\x.(xy)
,其中“\”代表 Lambda 符号:通过正则表达式,我需要获取所有不跟在反斜杠后面的字母。 在我的示例中,自由变量是
{y}
因为“y”是唯一不受“\”限制的变量。 我怎么能这么做呢? 提前致谢。
最佳答案
您可以使用 /\\(\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
(并使用第二个捕获组,它是返回数组中的第三个元素)。
关于JavaScript 正则表达式 : ignore every letter after backslash,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23061120/