gpt4 book ai didi

javascript - 仅匹配制表位中的数字

转载 作者:行者123 更新时间:2023-11-27 22:39:41 25 4
gpt4 key购买 nike

Sublime Text、Atom 或 Visual Studio Code 等编辑器的代码片段可以包含制表位。这些制表位由美元符号后跟数字标记(例如 $1),除非它们包含用大括号括起来的占位符文本(例如 ${1:placeholder text})。我正在尝试在 JavaScript 中匹配这些制表位的数量:

str = "Match $1 and ${2:yay} then ignore 3 and match $4 again" 
re = /(?:\${?)\d+/g
arr = str.match(re)

我希望生成的数组仅包含整数,而不是它看起来像这样:["$1", "${2", "$4"]

如何仅获取数字,同时忽略不属于制表位的所有数字(例如上面 str 中的 3)

最佳答案

非捕获组 (?:\${?) 不会使 String#match 忽略部分匹配。

在需要保留的模式周围使用捕获组 - /\${?(\d+)/g - 并运行 exec在循环中获取捕获的值:

var str = "Lorem $1 ipsum ${2:yay} ignore 3 and so forth $4" ;
var re = /\${?(\d+)/g;
var arr = [];
while((m=re.exec(str)) !== null) {
arr.push(m[1]);
}
console.log(arr);

关于javascript - 仅匹配制表位中的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38851254/

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