第 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
您可以使用Array.from
将结果转换为数组并一次性执行映射:
const matches = Array.from(results, match => match[1])
如果您只需要字符串的 abc
部分,则不需要使用 matchAll
方法。您只需使用 positive lookbehind 正则表达式和 match
方法即可轻松获得所需的结果。
let str = "123ABC, 123ABC"
let results = str.match(/(?<=123)ABC/gi);
console.log(results)
// ["ABC","ABC"]
这里有一些关于这些类型的正则表达式的更多信息Lookahead and lookbehind
const str = "123ABC, 123ABC"
const results = Array.from(
str.matchAll(/123(ABC)/gi),
([_, g1]) => g1
)
console.log(results)
我正在尝试找出一种方法来将我所有的第 1 组匹配项放入一个数组中,而无需使用 matchAll()
的循环。
这是我到目前为止的结果,但它只产生了第一个匹配项:
let str = "123ABC, 123ABC"
let results = str.matchAll(/123(ABC)/gi);
let [group1] = results;
alert(group1[1]);
如何将 matchAll
的结果放入一个数组中?又名:
// ABC, ABC
您可以使用Array.from
将结果转换为数组并一次性执行映射:
const matches = Array.from(results, match => match[1])
如果您只需要字符串的 abc
部分,则不需要使用 matchAll
方法。您只需使用 positive lookbehind 正则表达式和 match
方法即可轻松获得所需的结果。
let str = "123ABC, 123ABC"
let results = str.match(/(?<=123)ABC/gi);
console.log(results)
// ["ABC","ABC"]
这里有一些关于这些类型的正则表达式的更多信息Lookahead and lookbehind
const str = "123ABC, 123ABC"
const results = Array.from(
str.matchAll(/123(ABC)/gi),
([_, g1]) => g1
)
console.log(results)