我知道split
可以获得第二个参数作为限制,但这不是我想要的。而且我知道可以通过使用实心字符串分隔符再次拆分和连接来完成。
问题是分隔符是一个正则表达式,我不知道匹配的模式的确切长度。
考虑这个字符串:
this is a title
--------------------------
rest is body! even if there are some dashes!
--------
---------------------
it should not be counted as a separated part!
通过使用这个:
str.split(/---*\n/);
我会得到:
[
'this is a title',
'rest is body! even if there are some dashes.!',
'',
'it should not be counted as a separated part!'
]
这就是我想要的:(如果我想按第一次出现拆分)
[
'this is a title',
'rest is body! even if there are some dashes.!\n--------\n---------------------\nit should not be counted as a separated part!'
]
这个解决方案是我目前拥有的,但它只是第一次出现。
function split(str, regex) {
var match = str.match(regex);
return [str.substr(0, match.index), str.substr(match.index+match[0].length)];
}
关于如何推广任何数字n的解决方案以在第 n次出现正则表达式时拆分字符串的任何想法?