gpt4 book ai didi

node.js - NodeJS 中的非捕获分支重置正则表达式

转载 作者:太空宇宙 更新时间:2023-11-03 21:51:42 24 4
gpt4 key购买 nike

https://regex101.com/r/UXnhTy/1

var date = /(?|(Sat)ur|(Sun))day/;

console.log(date.exec("Sunday"));

此操作失败:

SyntaxError: Invalid regular expression: /(?|(Sat)ur|(Sun))day/: Invalid group

是否有支持此功能的 NodeJS 版本?或者某个图书馆有

我用nodejs v8.12.0测试了这个

最佳答案

不是真的。 JavaScript 的高级替代正则表达式库是 XRegExp ,但它没有您想要的功能 - 即使是 addon 也不具备.
XRegExp 支持的一个更简单的正则表达式功能是 named capture groups ,所以你可以写:

var days = XRegExp('(?:(?<d>Sat)ur|(?<d>Sun))day', 'gi');

您不能使用数字作为组名,但命名组应该满足您的需求 - 它们允许反向引用(使用 \k<d> )、替换( ${d} )、捕获( match.d )以及一个常规编号组。

ES2018 原生支持命名捕获组:ES2018 Regular Expression Updates .
根据node.green ,命名捕获组由 Node.js ≥10.3.0 或 ≥8.6.0 以及 --harmony flag 支持。 .

关于node.js - NodeJS 中的非捕获分支重置正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52432045/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com