- 此问题在此处已有答案**:
Use of capture groups in String.split() [duplicate](5个答案)
昨天关门了。
我目前有这个javascript代码:
const match = '# test #123;? test'.match(/(#\d+;)|[\s\S]/g);
console.log(match);
我基本上希望正则表达式匹配所有内容,同时对#123;
(#
和;
之间的任何数字)进行分组。
这在当前是有效的,但会产生如下所示的数组:
[
'#', ' ', 't',
'e', 's', 't',
' ', '#123;', '?',
' ', 't', 'e',
's', 't'
]
出于性能原因(我在迭代匹配项并将它们连接起来,同时以不同的方式处理#123;
),我希望将其余匹配项捕获到单个匹配项中,因此数组应该如下所示:
[ '# test ', '#123;', '? test' ]
我已经多次尝试修改正则表达式来捕获[\s\S]
,如下所示:/(#\d+;)|[\s\S]+/g
以及尝试(.*)
的各种组合,但它最终将所有内容捕获到一个组中,使整个正则表达式无用
1条答案
按热度按时间0lvr5msh1#