基于重复字符集的正则表达式分割

3
'a121212b'.split( /(12)+/g )

产量
[ "a", "12", "b" ]

为什么?我正试图让它在121212处分割。这不是一个很复杂的正则表达式 :)

3个回答

3

这正是它分离的内容,由于括号捕获了12,所以也会返回捕获的匹配项。使用?:表示您不想进行捕获:

'a121212b'.split( /(?:12)+/g )

产出:

[ "a", "b" ]

1

这是括号的问题...我忘记了replace会加入你捕获的任何内容。

所以/(?:12)+/g可以工作


@micha -- 运行正常。你引用了正则表达式。 - user578895

1

我认为你只需要对它进行分组。

var a = 'a121212b'.split(/((12)+)/g);
alert(a[1]);

示例:http://jsfiddle.net/KbUXP/


我实际上需要做的是___完全___相反的事情。'a121212b'.split(/((12)+)/g); === ["a", "121212", "12", "b"] :) - user578895

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接