javascript - 如何分割正则表达式匹配

标签 javascript regex

我想匹配字符串中所有给定的 (),但我遇到了麻烦,因为我当前的解决方案匹配 () 而我的意图是得到像 ['(',')']

这样的分割结果

我的regex表达式为:/[()]+/g, Regex101 playground .

如何仅使用正则表达式表达式获得所需的行为?

const matchType = str => str.match(/[()]+/g)

console.log(matchType('{(})[]')); // ['(',')]

// Expected ['(',')']
console.log(matchType('{[()]}')); // ['()']

最佳答案

不要使用量词+,

当您使用+量词时+表示一次或多次,

[()]+ 这意味着匹配 ( 或 ) 一次或多次,因此当您有像 () 这样的字符串时,它会考虑作为一场比赛

const matchType = str => str.match(/[()]/g)

console.log(matchType('{(})[]')); // ['(',')]

// Expected ['(',')']
console.log(matchType('{[()]}'));

关于javascript - 如何分割正则表达式匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58031653/

相关文章:

javascript - 为什么我们需要可迭代和迭代器的概念?

python - 如何将非常特殊的列表导出到 excel 或 csv

python - url 调度程序使用正则表达式检测所有内容或不检测任何内容

c++ - 基于正则表达式的自动完成

javascript - 动态检查值并添加Class如果大于

javascript - 如何摆脱谷歌地图中的小矮人?

java - WebSocket 在打开连接时收到 404

javascript - 如何在 jQuery 中获取 $(this) 选中的选项?

mysql - MySQL 中的多列正则表达式搜索

regex - 以星号*开头的Perl标识符代表什么?