Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.07.2021, 20:59
Аспирант
Отправить личное сообщение для mik888em Посмотреть профиль Найти все сообщения от mik888em
 
Регистрация: 21.06.2020
Сообщений: 39

Как регуляркой удалить куски в тексте?
Есть строка, в которой текст:
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 иттерации".
Ответить с цитированием
  #2 (permalink)  
Старый 28.07.2021, 21:42
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 31,060

Сообщение от mik888em
что выделил желтым и синим
можно результат на выходе?
Ответить с цитированием
  #3 (permalink)  
Старый 28.07.2021, 22:14
Аспирант
Отправить личное сообщение для mik888em Посмотреть профиль Найти все сообщения от mik888em
 
Регистрация: 21.06.2020
Сообщений: 39

Сообщение от рони Посмотреть сообщение
можно результат на выходе?
вот что должно получится после чистки того что я выделял на скрине синим и жёлтым цветом:
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"
Ответить с цитированием
  #4 (permalink)  
Старый 28.07.2021, 22:19
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 31,060

Сообщение от mik888em
я выделял на скрине синим и жёлтым цветом:
не видать вашего скриншота
Ответить с цитированием
  #5 (permalink)  
Старый 28.07.2021, 22:40
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 31,060

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>
Ответить с цитированием
  #6 (permalink)  
Старый 28.07.2021, 23:29
Аспирант
Отправить личное сообщение для mik888em Посмотреть профиль Найти все сообщения от mik888em
 
Регистрация: 21.06.2020
Сообщений: 39

выделил желтым и синим см скриншот: https://prnt.sc/1h55j4q
Ответить с цитированием
  #7 (permalink)  
Старый 28.07.2021, 23:30
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 31,060

Сообщение от mik888em
см скриншот
не судьба видать увидеть)))
Ответить с цитированием
  #8 (permalink)  
Старый 28.07.2021, 23:51
Аспирант
Отправить личное сообщение для mik888em Посмотреть профиль Найти все сообщения от mik888em
 
Регистрация: 21.06.2020
Сообщений: 39

Ответить с цитированием
  #9 (permalink)  
Старый 28.07.2021, 23:54
Аспирант
Отправить личное сообщение для mik888em Посмотреть профиль Найти все сообщения от mik888em
 
Регистрация: 21.06.2020
Сообщений: 39

Кстати, поставил переменную [[KOD_VSEY_STRANIZY]] в которой содержится строка текста для обработки. Поставил в таком виде: let str = `[[KOD_VSEY_STRANIZY]]`; Но получаю в моём JS-обработчике "Browser Automation Studio" такую ошибку:
[672173537] [00:05:09] Поток №1 : SyntaxError: Parse error во время выполнения действия 672173537
Ответить с цитированием
  #10 (permalink)  
Старый 29.07.2021, 07:12
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 31,060

mik888em,
может как-то так
let str = `${тут ваша переменная}`; или так let str = переменная;
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как из html удалить все комментарии javascript(ом)? An1984tonn Сайт Javascript.ru 5 21.12.2016 08:29
Как удалить созданную куку? DivMan Events/DOM/Window 1 22.11.2016 07:31
Как вы относитесь к наркоманам? Maxmaxmaximus7 Оффтопик 7 05.02.2014 11:29
Как удалить коммит github Maxmaxmaximus6 Оффтопик 59 01.01.2014 17:42
КАК удалить []-символы из строки?! Brook Events/DOM/Window 4 25.04.2012 15:38