Regex для выбора запятых за пределами кавычек

Это не так, как вы делаете CORS на бэкэнде. Ваш бэкэнд должен прослушивать запросы типа HTTP OPTIONS и отправлять туда заголовки CORS.

Поток управления примерно такой:

  1. Вы запрашиваете что-то во внешнем интерфейсе
  2. Браузер определяет: э-э, для этого требуется CORS
  3. Сначала браузер выполняет запрос OPTIONS к запрашиваемым ресурсам для согласования CORS
  4. В зависимости от результата, либо браузер выдает ваш интерфейс с ошибкой
  5. , либо продолжает фактический запрос, выданный вашим интерфейсом.
  6. С этого момента все работает почти нормально.
  7. Когда браузер получает результат вашего фактического обратного вызова API, он отфильтровывает вещи, которые не были внесены в белый список / согласованы в шагах 3 и 4.
  8. Он представляет, что потенциально подвергнутый цензуре результат для внешнего интерфейса в результате HTTP-вызова.
37
задан TheCloudlessSky 18 July 2012 в 13:20
поделиться

2 ответа

Это будет соответствовать любой строке до и включая первое, незаключенное в кавычки"". Это то, что Вы желаете?

/^([^"]|"[^"]*")*?(,)/

, Если Вы хотите всех их (и поскольку контрпример парню, который сказал это, не был возможен) Вы могли записать:

/(,)(?=(?:[^"]|"[^"]*")*$)/

, который будет соответствовать всем им. Таким образом

'test, a "comma,", bob, ",sam,",here'.gsub(/(,)(?=(?:[^"]|"[^"]*")*$)/,';')

замены все запятые не внутренние кавычки с точками с запятой, и производит:

'test; a "comma,"; bob; ",sam,";here'

, Если Вам нужен он для работы через разрывы строки просто, добавляют m (многострочный) флаг.

84
ответ дан MarkusQ 27 November 2019 в 04:16
поделиться

Попробуйте это регулярное выражение:

(?:"(?:[^\\"]+|\\(?:\\\\)*[\\"])*"|'(?:[^\\']+|\\(?:\\\\)*[\\'])*')\s*=>\s*(?:"(?:[^\\"]+|\\(?:\\\\)*[\\"])*"|'(?:[^\\']+|\\(?:\\\\)*[\\'])*')\s*,

Это действительно также позволяет строки как “ 'foo\'bar' => 'bar\\', ”.

1
ответ дан Gumbo 27 November 2019 в 04:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: