[ID CC-CC2021] Найти слова (интернет ссылки), зная их начало и конец и удалить все кроме них

design_rm

Участник
Топикстартер
Сообщения
22
Реакции
26
Есть большой текст, в этом тексте есть ссылки на картинки в интернете (все они начинаются с "https" заканчиваются "jpg"). Можно ли с помощью греп найти эти ссылки на картинки и удалить все кроме них?
 

Linxy

Девушка с битой
10 лет на форуме
Сообщения
2 277
Реакции
3 836
А в одном абзаце может быть несколько таких ссылок?
 

Linxy

Девушка с битой
10 лет на форуме
Сообщения
2 277
Реакции
3 836
Может можно и в один проход, но мне не хочется городить такую конструкцию, поэтому три шага:
1. Удаляем всё сначала абзаца до первой ссылки:
^.*?(?=https)
2. Удаляем содержимое между ссылками:
(?<=jpg).*?(?=https)
3. Удаляем текст после последней ссылки:
я ещё не придумала как))))
 
  • Спасибо
Реакции: design_rm

kstati

иɯɐɯɔʞ
10 лет на форуме
Сообщения
1 138
Реакции
512
3. Удаляем текст после последней ссылки:
я ещё не придумала как))))
Слить азацы в строку - ^p >> " "
Прогнать твою пару поисков
и добить руками. один раз можно.
 

Linxy

Девушка с битой
10 лет на форуме
Сообщения
2 277
Реакции
3 836
Хотя можно и проще.
Создать символьный стиль для того, что надо оставить.
Назначить этот стиль по запросу:
https.*?jpg
А потом вторым проходом удалить всё, что без стиля.
Правда это сработает только если других символьных стилей нет в тексте.
 
  • Спасибо
Реакции: design_rm

veretragna

γνώσις
Сообщения
578
Реакции
199
Искать: .*?(http[^\s]+jpg)
Заменить на: $1
Удаляет лишний текст кроме ссылок по всему фрейму. Только после самой последней ссылки во фрейме остается лишний текст, который автоматом не получается убрать.
 
  • Спасибо
Реакции: design_rm и Linxy