JavaScript 正则表达式 : ignore every letter after backslash

标签 javascript regex

我想检索 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”

Demonstration

<小时/>

回答新问题:

要获取 \ 后面的名称,您可以使用 /([^\\]|^)(\w+)/g (并使用第二个捕获组,它是返回数组中的第三个元素)。

Demonstration

关于JavaScript 正则表达式 : ignore every letter after backslash,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23061120/

相关文章:

javascript - 多个滚动事件 jQuery

c# - 为什么\b 不匹配使用 .net 正则表达式的单词

python - python中href url中的正则表达式编号

regex - apache HTTP :X-Forwarded-Proto in . htaccess 在开发环境中导致重定向循环

javascript - 为 null javascript 对象成员分配新值

javascript - 使用 Javascript 从元数据中抓取信息

javascript - 较长名称的 JSTREE 链接/节点在 Chrome 中未正确呈现

javascript - 获取类型错误 : Failed to execute 'fetch' on 'Window' : Illegal invocation

php - 使用 preg_replace 替换单引号之间的所有点字符

javascript - 正则表达式匹配一个额外的空组