[ID CS4-CS6] Убрать ГРЕПом лишние каналы из телепрограммы

vinnik63

Участник
Топикстартер
Сообщения
322
Реакции
99
Мы получаем ТВ-программу на неделю в 7 файлах RTF (на каждый день недели) с кучей лишних каналов. Приходится в Ворде пролистывать каждый файл, вручную выделяя и удаляя ненужные каналы. Работа не слишком трудная, но и не слишком приятная -- каналов около 70 штук, приходится постоянно следить, чтобы не удалить что-то нужное или оставить что-то ненужное.

Поэтому, немного освоившись с ГРЕПом, решил попробовать облегчить себе жизнь, но пока не очень получается.
Задумка была такая: находить ГРЕПом название канала, который НЕ должен присутствовать, и от него выделять(и удалять) всё подряд вплоть до названия нужного канала.
Первая часть удаётся -- заголовок НЕ нужного канала находится, но выделяется только он... а выделить поиском всё от него до следующего нужного заголовка -- никак не получается.

Выглядит примерно так:

Untitled-1.jpg


Красным выделены НЕнужные каналы, но поиском удаётся найти только их заголовки, а найти содержимое канала до следующего названия -- никак...
Может, будут какие идеи? Я уже все мозги сломал... :) или, может я выбрал неправильный подход?
Вот чую нутром, что можно это ГРЕПом сделать, а вот как -- сообразить не могу... :)
 
Последнее редактирование:

LeonidB

Их бин
10 лет на форуме
Сообщения
2 470
Реакции
1 530
Попробуйте это:
Код:
(\?{4})(?!(Первый канал|Россия 1|ОТР|НТВ))(\X+?)(?=\?{4})

Нужные каналы подставьте в скобки сами. GREP выделяет модули лишних каналов по одному, но Вам, я полагаю, и это подойдёт. :)
 
  • Спасибо
Реакции: vinnik63

NNN5

Модератор
15 лет на форуме
Сообщения
1 257
Реакции
1 012
Вы можете за первый проход всем ненужным присвоить стиль абзаца "Ненужный канал", а за второй проход поудалять текст с этим стилем. Ещё вариант - воспользоваться скриптом FindChangeByList. Но это - много чести.
 

vinnik63

Участник
Топикстартер
Сообщения
322
Реакции
99
Попробуйте это:
Код:
(\?{4})(?!(Первый канал|Россия 1|ОТР|НТВ))(\X+?)(?=\?{4})

Нужные каналы подставьте в скобки сами. GREP выделяет модули лишних каналов по одному, но Вам, я полагаю, и это подойдёт. :)
большое спасибо! :)
правда, за выходные я сам решил задачу (причём двумя способами)... :)
зато ваш вариант немного короче... у меня в конце вместо (\X+?)(?=\?{4}) получилось (.+\r+)+?^(?=\?{4}) :)

а что это за \Х такой? я нигде в перечнях метасимволов такого не видел...
 

LeonidB

Их бин
10 лет на форуме
Сообщения
2 470
Реакции
1 530

yann777

Участник
Сообщения
10
Реакции
1
Мы получаем ТВ-программу на неделю в 7 файлах RTF (на каждый день недели)
Вам повезло. Нам присылали 1 файл = 1 канал. А нужно объединить по дням. Пользовался скриптом FindChangeByList. Делал хитрым образом разделял каналы и объединял в дни. Занимало минут 30-40.
 

vinnik63

Участник
Топикстартер
Сообщения
322
Реакции
99
Вам повезло. Нам присылали 1 файл = 1 канал. А нужно объединить по дням. Пользовался скриптом FindChangeByList. Делал хитрым образом разделял каналы и объединял в дни. Занимало минут 30-40.
нам раньше тоже так присылали (сейчас только 3 канала отдельно)...
а для сортировки по дням недели мы используем программку TV-Cleaner... :)