看起来你可以分开&[^;]*;
正则表达式。也就是说,分隔符是以以下开头的字符串&
, 以。。结束;
,并且在两者之间可以有任何东西,但;
.
如果连续可以有多个分隔符,并且不希望它们之间有空字符串,则只需使用(&[^;]*;)+
(或者一般来说(
delim
)+
图案)。
如果您可以在字符串的开头或前面有分隔符,并且您不希望它们成为由它们引起的空字符串,那么只需在拆分之前将它们修剪掉即可。
Example
这是演示上述想法的片段(另请参阅 ideone.com http://ideone.com/IOYVV):
var s = ""Hello <everybody> there""
print (s.split(/&[^;]*;/));
// ,Hello,,everybody,,there,
print (s.split(/(?:&[^;]*;)+/));
// ,Hello,everybody,there,
print (
s.replace(/^(?:&[^;]*;)+/, "")
.replace(/(?:&[^;]*;)+$/, "")
.split(/(?:&[^;]*;)+/)
);
// Hello,everybody,there