Regex выбрать специфицированный c символов между двойными кавычками - PullRequest
1 голос
/ 06 января 2020

Я хотел бы извлечь указанный c символ, т.е. ;, который расположен между кавычками (") с выражением Regex.

Пример строки:

Lorem; ipsum; "dolor; sit;"; amet;

Следует выбирать каждые ; в кавычках:

Lorem; ipsum; "dolor ; sit ;"; amet;

Я попробовал этот, но он не работает

(?<=\")(;)*(?=\")

Есть идеи? Заранее спасибо

1 Ответ

1 голос
/ 06 января 2020

Вам нужно будет сделать это в два шага:

  1. выбрать каждую часть между кавычками: /"[^"]+"/gm
  2. в этих совпадениях, поиск ;

Вы должны быть в состоянии использовать String.prototype.replace с данным регулярным выражением и искать ";" в вашем обратном вызове.

вот демо:

function escapeCsvDelimiter(input) {
  return input.replace(/"[^"]+"/gm, (match) => match.replace(/;/g, '\\;'));
}

const test = 'Lorem;ipsum;"dolor;sit;";amet;"jhv;"';
const result = escapeCsvDelimiter(test);

console.log(result);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...