Регулярные выражения (Regex) для обработки сразу нескольких строк

Рейтинг: -1Ответов: 2Опубликовано: 09.08.2023

День добрый. Столкнулся тут со следующей проблемой. Обрабатываю большие массивы текста для вычленения массива только ключевых значений и все отлично, пока дело не касается нескольких строк.

Для примера, мне надо удалить все между ключами 1 и 2

Ключ1">текст

который 

надо убрать.<

Ключ2

Чтобы получить в итоге файл со строками, те убрать текст между ограничителями "> < и сами ограничители. Пример, что хочу получить

Ключ1

Ключ2

Не подскажете, каким регулярным выражением это сделать?

Ответы

▲ 0Принят

убрать текст между ограничителями "> < и сами ограничители

Предложу такой вариант...

let s = `Ключ1">текст

который

надо убрать.<

Ключ2`
const r = /">[^<]*</g
s = s.replace(r, '')
console.log(s)

▲ 0

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

let str = `Ключ1>текст

который

надо убрать.<

Ключ2> ещё тексе
который
тоже нужно удалить.<

Ключ3`,
newStr = '',
isIgnored = false;

for( let i = 0; i < str.length; i++) {
  let c = str.charAt(i);
  if(c == '>') {
    isIgnored = true;
  } else if(c == '<') {
    isIgnored = false;
  } else if(!isIgnored) {
    newStr += c;
  }
}
console.log("newStr: " + newStr);