Поскольку регулярные выражения в JavaScript не поддерживают lookbehinds , я не собираюсь готовить гигантский взлом, чтобы имитировать это поведение. Вместо этого вы можете просто split()
на всех запятых (,
), а затем приклеить фрагменты, которые не должны были быть разделены в первую очередь.
Quick 'n' dirty demo :
var str = 'a\\,bcde,fgh,ijk\\,lmno,pqrst\\,uv'.split(','), // Split on all commas
out = []; // Output
for (var i = 0, j = str.length - 1; i < j; i++) { // Iterate all but last (last can never be glued to non-existing next)
var curr = str[i]; // This piece
if (curr.charAt(curr.length - 1) == '\\') { // If ends with \ ...
curr += ',' + str[++i]; // ... glue with next and skip next (increment i)
}
out.push(curr); // Add to output
}