Regex для соответствия всем экземплярам, ​​не заключенным в кавычки

Из этого вопроса я пришел к выводу, что сопоставление всех экземпляров данного регулярного выражения , а не внутри кавычек невозможно. То есть, он не может сопоставить экранированные кавычки (например: «все это \" совпадение \ "должно быть взято» ). Если есть способ сделать это, о котором я не знаю, это решит мою проблему.

Если нет, то я хотел бы знать, есть ли какая-нибудь эффективная альтернатива, которую можно было бы использовать в JavaScript. Я немного подумал об этом, но не могу предложить никаких элегантных решений, которые работали бы в большинстве, если не во всех случаях.

В частности, мне просто нужна альтернатива для работы с .split () и .replace (), но если бы он мог быть более обобщенным, это было бы лучше всего.

Например:
Входная строка:
+ bar + baz "not + or \" + or + \ "this + "foo + bar +
замена + на #, а не внутри кавычек, вернет:
# bar # baz" not + or \ "+ или + \" this + "foo # bar #

56
задан Wiktor Stribiżew 9 June 2019 в 20:19
поделиться