Из этого q/a, я понял, что сопоставление всех экземпляров заданного регулярного выражения не внутри кавычек невозможно. То есть, он не может соответствовать экранированным кавычкам (например: "this whole \"match\" should be taken"
). Если есть способ сделать это, о котором я не знаю, это решило бы мою проблему.
Если нет, я бы хотел знать, есть ли эффективная альтернатива, которая может быть использована в JavaScript. Я немного об этом подумал, но не могу придумать какие-либо изящные решения, которые будут работать в большинстве, если не во всех случаях.
В частности, мне просто нужна альтернатива работе с методами .split() и .replace(), но если бы она могла быть более обобщенной, это было бы лучше.
Пример:
Строка ввода: +bar+baz"not+or\"+or+\"this+"foo+bar+
заменив + на #, а не внутри кавычек, вернется: #bar#baz"not+or\"+or+\"this+"foo#bar#