Мой ответ предполагает, что ваш ввод является отражением кода / контента из веб-источников, в которых одинарные и двойные кавычки полностью взаимозаменяемы при условии, что они встречаются как набор без совпадений.
Вы не можете использовать регулярное выражение для этого,На самом деле вам нужно написать микро-парсер для анализа строки, которую вы хотите разделить.Ради этого ответа я буду называть процитированные части ваших строк как подстроки.Вам нужно специально пройтись по струне.Рассмотрим следующий случай:
var a = "some sample string with \"double quotes\" and 'single quotes' and some craziness like this: \\\" or \\'",
b = "sample of code from JavaScript with a regex containing a comma /\,/ that should probably be ignored.";
В этом случае вы абсолютно не представляете, где начинается или заканчивается подстрока, просто анализируя ввод для символьного шаблона.Вместо этого вы должны написать логику, чтобы принять решение о том, используется ли символ кавычки как символ кавычки, сам по себе не заключен в кавычки, и что символ кавычки не следует за выходом.
Я не собираюсь писать этот уровеньсложность кода для вас, но вы можете взглянуть на что-то, что я недавно написал и имеет шаблон, который вам нужен.Этот код не имеет ничего общего с запятыми, но в остальном он является достаточно допустимым микропарсером, чтобы вы могли следовать при написании собственного кода.Посмотрите на функцию asifix следующего приложения:
https://github.com/austincheney/Pretty-Diff/blob/master/fulljsmin.js