RegExp. Пошук за допомогою регулярного виразу

Перегляд вперед та назад

У більшості реалізацій регулярних виразів є спосіб здійснювати пошук фрагмента тексту, "переглядаючи" (але не включаючи в знайдене) оточуючий текст, який розташований перед або після фрагмента тексту, що шукають. Перегляд з запереченням використовується рідше і "стежить" за тим, щоб вказані відповідності, навпаки, не зустрічалися перед або після шуканого текстового фрагменту.

Позитивний перегляд вперед

Позитивний перегляд вперед (далі має бути)

(?=шаблон)

Людовик(?=XVI)

ЛюдовикXV, ЛюдовикXVI, ЛюдовикXVIII, ЛюдовикLXVII, ЛюдовикXXL

Негативний перегляд вперед (далі не має бути)

(?!шаблон)

Людовик(?!XVI)

ЛюдовикXV, ЛюдовикXVI, ЛюдовикXVIII, ЛюдовикLXVII, ЛюдовикXXL

Позитивний перегляд назад (перед цим має бути)

(?<=шаблон)

(?<=Сергій )Петренко

Сергій Петренко, Ігор Петренко

Негативний перегляд назад (перед цим не має бути)

(?<!шаблон)

(?<!Сергій )Петренко

Сергій Петренко, Ігор Петренко

Інші приклади

10,06,2024 17:08:58,502 4106 4115 28,9

  • (?<=^\d{2}),
    • 10,06,2024 17:08:58,502 4106 4115 28,9
  • (?<=\d{2}),(?=\d{4})
    • 10,06,2024 17:08:58,502 4106 4115 28,9

Wikipedia

Политех 4 сезона. Годовой таймлапс

В далёком 2010 году, уж не знаю как сейчас, но тогда - на девятом этаже четвёртого корпуса Политеха (в народе "свечка") висела веб-камера, установленная преподавателями кафедры ИКС (информационно-компьютерных систем), и снимала всё происходящее на парадной площади перед главным корпусом университета. Камера делала один снимок каждые пять минут и сохраняла их на сервере кафедры.

Вот, кстати, и она собственной персоной:

Возникла у меня в ту пору идея - смонтировать из кадров за один календарный год таймлапс, и поскольку здесь запечатлены все четыре природных сезона, то соединить видео с известным одноимённым произведением Вивальди. Тогда же, удалённо, используя самописный скрипт, я выкачал с сервера все необходимые файлы: их оказалось 100'329 штук или 2,75 гигабайта.

К сожалению, все эти годы руки не доходили закончить задуманное: то учёба, то работа, то прочие заботы, ну и конечно отсутствие навыков работы с видео. Файлы же бережно хранились и ждали своего часа.

И вот их час настал.
100'329 файла превратились в 75'521 - многие битые, да и совсем чёрные тоже ни к чему. Небольшой скрипт по переименованию для создания последовательности, пару кликов в VirtualDub - и вот сырой видео файл, длительностью 41 минута 57 секунд при частоте кадров 30, готов. Далее немного магии и колдовства в видео-редакторе, и вуаля - моя задумка одиннадцатилетней давности воплощена!

Встречайте: один год, четыре сезона, утро-день-вечер, ныне не существующий фонтан у политеха, огни города, машины, толпы студентов, уборщица в отражении стекла, дождь, мгла, снег, мухи, и кто ещё что сможет разглядеть, весь 2010й, всё это на музыку Вивальди - вашему вниманию представляется.

 

Пятиминутную версию удалось сделать так же автоматически, при помощи VirtualDub, а вот с одноминутным роликом - оказалось не всё так просто.

Дело в том, что если попытаться напрямую впихнуть 319 дней в 1 минуту, то выйдет что ночь (темные вечерние кадры) будет мелькать 5 раз в секунду, а это уже стробоскоп получается, приятного мало.

Вот так возникла задача: разработать алгоритм, который будет проходить по всем доступным снимкам и выбирать кадры в определенной последовательности, так чтобы в конечном итоге получилось смотрибельное видео длительностью 1 минута, в течение которого протекают все 319 дней.

To be continued...

Інерція мислення

Радянський фільм про учнів, які вступають до інституту. Один із головних героїв вивчив таблицю логарифмів напам'ять, на суперечку. У фільмі є дуже цікава сцена із демонстрацією інерції мислення. Фільм називається "Переступи порог" (1970).