繁体   English   中英

第 1 组正则表达式匹配的 matchAll 数组

[英]matchAll Array for Group 1 Regex Matches

我试图找出一种方法,将我所有的第 1 组匹配项放入一个数组中,而无需使用带有matchAll()的循环。

这是我到目前为止所拥有的,但它只产生第一场比赛:

let str = "123ABC, 123ABC"
let results = str.matchAll(/123(ABC)/gi);
let [group1] = results;
alert(group1[1]);

如何将matchAll的结果放入一个数组中? 阿卡:

// ABC, ABC

如果您只需要字符串的abc部分,则不需要使用matchAll方法。 只需使用带有match方法的正后视正则表达式表达式,您就可以轻松获得想要的结果。

 let str = "123ABC, 123ABC" let results = str.match(/(?<=123)ABC/gi); console.log(results) // ["ABC","ABC"]

以下是有关这些类型的正则表达式Lookahead 和 Lookbehind 的更多信息

 const str = "123ABC, 123ABC" const results = Array.from( str.matchAll(/123(ABC)/gi), ([_, g1]) => g1 ) console.log(results)

您可以使用Array.from将结果转换为数组并一次性执行映射:

 const matches = Array.from(results, match => match[1])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM