Как регуляркой удалить куски в тексте?
Есть строка, в которой текст:
random text 1***trash2***y6f dhy 1 month ago 14 minutes, 29 seconds 3,620 name***trash3***random text 1","random text 2***trash2***pot 5aq 3 months ago 9 minutes, 9 seconds 226,629 name***trash3***random text 2","random text 3***trash2***uan 4fp 5 months ago 26 minutes 506,950 name***trash3***random text 3" Хочу удалить то что выделил желтым и синим (см скриншот: https://prnt.sc/1h55j4q ) Вопрос/проблема: Я написал регулярку для удаления того что желтое: ***trash3***+([\s\S]+)"+ Но она убирает все данные с первого до последнего совпадения найденного в строке..... по-сути оставляя только начало и конец от всей строки. А нужно чтоб удаляло каждый найденный кусок. Если не понятно, то далее я поясню подробнее: Желтое - это что между name и кавычкой " Как я это хочу: В тексте, с помощью JS ищу регуляркой эти куски : ***trash3***random text 1 ***trash3***random text 2 ***trash3***random text 3 и заменяю на "пустоту". то есть удаляем ***trash3*** и сразу идущий после него любой рандомный текст до замыкающей кавычки (кавычку не удаляем). random text 1 - это какое-то рандомное предложение состоящее из нескольких слов. Обратите внимание, что этот же самый рандомный текст стоит до ***trash2*** , но его мы не удаляем. Tак-же хочу удалить такой рандомный текст : y6f dhy pot 5aq uan 4fp А синее - это то что между ***trash2*** и любое из этих значений: {цифра} minutes {цифра} minute {цифра} day {цифра} days {цифра} weeks {цифра} week {цифра} hours {цифра} hour {цифра} years {цифра} year {цифра} months {цифра} month Который идёт между ***trash2*** и цифрой пробел и временным названием . Типа 2 year, 27 years, 1 day, 6 days... и так далее. Но скорее всего это уже следующей регуляркой, т.к в моём случае "чистку" можно разбить "на 2 раза....2 иттерации". |
Цитата:
|
Цитата:
random text 1***trash2*** 1 month ago 14 minutes, 29 seconds 3,620 name","random text 2***trash2*** 3 months ago 9 minutes, 9 seconds 226,629 name","random text 3***trash2*** 5 months ago 26 minutes 506,950 name" |
Цитата:
|
mik888em,
<script> let str = `random text 1***trash2***y6f dhy 1 month ago 14 minutes, 29 seconds 3,620 name***trash3***random text 1","random text 2***trash2***pot 5aq 3 months ago 9 minutes, 9 seconds 226,629 name***trash3***random text 2","random text 3***trash2***uan 4fp 5 months ago 26 minutes 506,950 name***trash3***random text 3"`; let reg = /((?<=\*{3}trash2\*{3})[\s\S]+?(?=$|\s\d+\s+(minutes|minute|day|days|weeks|week|hours|hour|years|year|months|month)))|\*{3}trash3\*{3}[\s\S]+?(?=")/g; str = str.replace(reg, ""); document.write(str) </script> |
выделил желтым и синим см скриншот: https://prnt.sc/1h55j4q
|
Цитата:
|
|
Кстати, поставил переменную [[KOD_VSEY_STRANIZY]] в которой содержится строка текста для обработки. Поставил в таком виде: let str = `[[KOD_VSEY_STRANIZY]]`; Но получаю в моём JS-обработчике "Browser Automation Studio" такую ошибку:
[672173537] [00:05:09] Поток №1 : SyntaxError: Parse error во время выполнения действия 672173537 |
mik888em,
может как-то так let str = `${тут ваша переменная}`; или так let str = переменная; |
Часовой пояс GMT +3, время: 21:16. |