好的,您可以通过拆分或匹配来做到这一点。我寻求了一个不指望 ) 总是作为分隔符的解决方案。相反,我正在寻找一个非常具体的空白模式,字母,),零长度前瞻中的空白。所以像“D)(耳语)”这样的括号最可能的用法是可以的[D)匹配s)不匹配]。
var str = 'a) first sentence without fixed lenght b) second phrase c) bla bla bla';
var re = /(?=\s\w\)\s)/g;
var myArray = str.split(re);
var text;
var parenIndex;
// the result is = myArray[ 'a) first ...', 'b) second ... ', 'c) third ...' ];
for (var i = 0, il = myArray.length; i < il; i++) {
text = myArray[i];
parenIndex = text.indexOf(')'); // get first instance of )
myArray[i] = [ text.substring(0, parenIndex - 1), text.substring(parenIndex + 1) ];
}
// the result is = myArray[ ['a', 'first ...'], ['b', 'second ... '], ... ];
一个更简单的不太可靠的方法如下。它假定 ) 始终是一个分隔符。
var str = 'a) first sentence without fixed lenght b) second phrase c) bla bla bla';
var re = /(?=\w\))|\)/g;
var myArray = str.split(re);
var newArray = new Array(myArray.length / 2);
for (var i = 0, il = myArray.length; i < il; i += 2) {
newArray[i / 2] = [ myArray[i], myArray[i + 1] ];
}