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

时间:2019-12-01 23:22:07

标签: javascript arrays regex prototype iterable

我正在尝试找到一种方法,以将我所有的第1组匹配项都放入一个数组中,而不必使用带有matchAll()的循环。

这是我到目前为止的内容,但是它只会产生第一个匹配项:

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

如何将matchAll的结果分成一个数组?又名:

// ABC, ABC

3 个答案:

答案 0 :(得分:1)

如果只需要字符串的void Merge(int *numbers, int i, int j, int k) { int mergedSize = k - i + 1; int merge2 = k - j; int mergePos = 0; int leftPos = 0; int rightPos = 0; int mergedNumbers = new int[mergedSize]; leftPos = i; rightPos = j + 1; 部分,则不需要使用abc方法。只需使用matchAll方法使用正向后看正则表达式即可轻松获得所需的结果。

match

以下是有关这些类型的正则表达式Lookahead and lookbehind

的更多信息

答案 1 :(得分:1)

const str = "123ABC, 123ABC"

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

console.log(results)

答案 2 :(得分:0)

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

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