Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - [решено] RegExt для вытаскивания имени файла из ссылки

Ответить
Настройки темы
Любой язык - [решено] RegExt для вытаскивания имени файла из ссылки

Старожил


Сообщения: 221
Благодарности: 18

Профиль | Отправить PM | Цитировать


Изменения
Автор: Uragan66
Дата: 22-06-2019
Описание: исправление ошибок
Доброго времени суток всем !
Прошу помощи в небольшом вопросе:
Есть текстовые файлы со строками:
Код: Выделить весь код
xhr.open "GET", "http://iptv-m3u.ru/файл1.m3u", False
Ссылки во всех текстовых файлах разные, имена файлов тоже, но все с расширением .m3u
Нужно заменить эти строки на:
Код: Выделить весь код
.savetofile "./plist/файл1.m3u", 2 '//overwrite
Написал рег. выражение:
Код: Выделить весь код
найти:
^(([A-Z]:)?[/.]?[//{1,2}/]?.*[//{1,2}/])*(.+)/.(.+)",.*$
заменить на:
.savetofile "./plist/$4", 2 '//overwrite
Тестирую на Notepad++, всё отрабатывает нормально, но обрезает первую букву в имени файла. Например, в приведённом выше примере на выходе получается:
Код: Выделить весь код
.savetofile "./plist/айл1.m3u", 2 '//overwrite
Подскажите, пожалуйста, как можно исправить мой RegExt ?

Отправлено: 21:15, 22-06-2019

 

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата Uragan66:
Ссылки во всех текстовых файлах разные »
Вот поэтому стоило выложить кучу примеров этих ссылок.

Цитата Uragan66:
но все с расширением .m3u »
Далее следует шаблон, в котором нет никакого упоминания .m3u. Как так?


Шаблон для поиска на базе PRCE:
Код: Выделить весь код
.*\"http:\/\/.+\/(.+\.m3u)\", False
Для замены:
Код: Выделить весь код
.savetofile "./plist/$1", 2 '//overwrite
P.S. RegEx или RegExp (regular expressions), но никак не RegExt.
Это сообщение посчитали полезным следующие участники:

Отправлено: 02:20, 23-06-2019 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Старожил


Сообщения: 221
Благодарности: 18

Профиль | Отправить PM | Цитировать


Цитата Iska:
P.S. RegEx или RegExp (regular expressions), но никак не RegExt. »
да просто случайная ошибка, машинально, не заметил...
Цитата Iska:
Вот поэтому стоило выложить кучу примеров этих ссылок. »
выложить то можно, но это ссылки на самообновляемые плейлисты с интернета и, попробуй угадай, какую ссылку сам автор выложит...
ссылки могут быть разной длины
Цитата Iska:
Далее следует шаблон, в котором нет никакого упоминания .m3u. Как так? »
шаблон нашел в интернете, переделал под себя, он ищет имена файлов с любым расширением.
он то нормально отрабатывает, но отрезает первую букву в имени файла
Цитата Iska:
Шаблон для поиска на базе PRCE: »
Iska, спасибо, но почему-то не срабатывает этот шаблон:

Последний раз редактировалось Uragan66, 23-06-2019 в 10:24.


Отправлено: 10:15, 23-06-2019 | #3


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата Uragan66:
Iska, спасибо, но почему-то не срабатывает этот шаблон: »
Про что и речь. Вы выкладываете кучу ссылок, мы пытаемся найти в них закономерности. В данном случае выяснилось, что протокол может быть и https, а в uri может присутствовать больше частей. Посему пока так:
Код: Выделить весь код
.*\"https?:\/\/.+\/(.+\.m3u)\", False
И да — выкладывайте ещё и текстом: мало удовольствия перенабирать uri с картинки «ручками».
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:05, 23-06-2019 | #4


Старожил


Сообщения: 221
Благодарности: 18

Профиль | Отправить PM | Цитировать


Iska, спасибо большое, RegExp
Код: Выделить весь код
.*\"https?:\/\/.+\/(.+\.m3u)\", False
работает нормально, на нескольких ссылках проверил.
Ссылки могут быть такие:
Код: Выделить весь код
http://gorod.tv/iptv.m3u
http://listiptv.ru/fork18.m3u
https://smarttvnews.ru/apps/iptvchannels.m3u
http://iptvm3u.ru/one.m3u
https://webarmen.com/my/iptv/auto.nogrp.m3u
https://getsapp.ru/IPTV/Auto_IPTV_18.m3u
https://webhalpme.ru/rif.m3u
https://webhalpme.ru/if18.m3u
http://iptv-m3u.ru/iptvfull.m3u
http://iptv-m3u.ru/auto.xxx.m3u
http://bluecrabstv.do.am/Free.m3u
http://urlcut.ru/t.m3u
http://tv.cyxym.net/files/playlist-unicast.m3u
http://dmitry-tv.my1.ru/iptv/Dmitry-tv.m3u
http://tv-smart-tv.ru/iptv/iptvforever.m3u
http://strtv.zzz.com.ua/strtv.m3u
а может и ещё какие попадутся, всё зависит от автора плейлиста, куда он его зальет...

Отправлено: 14:12, 23-06-2019 | #5


Ветеран


Contributor


Сообщения: 2723
Благодарности: 1693

Профиль | Отправить PM | Цитировать


Изображения
Тип файла: jpg я190623.jpg
(157.5 Kb, 7 просмотров)

Uragan66, Никогда не использовал notepad++. Установил, исходный текст:
Цитата:
xhr.open "GET", "http://gorod.tv/iptv.m3u", False
xhr.open "GET", "http://listiptv.ru/fork18.m3u", False
xhr.open "GET", "https://smarttvnews.ru/apps/iptvchannels.m3u", False
xhr.open "GET", "http://iptvm3u.ru/one.m3u", False
xhr.open "GET", "https://webarmen.com/my/iptv/auto.nogrp.m3u", False
xhr.open "GET", "https://getsapp.ru/IPTV/Auto_IPTV_18.m3u", False
xhr.open "GET", "https://webhalpme.ru/rif.m3u", False
xhr.open "GET", "https://webhalpme.ru/if18.m3u", False
xhr.open "GET", "http://iptv-m3u.ru/iptvfull.m3u", False
xhr.open "GET", "http://iptv-m3u.ru/auto.xxx.m3u", False
xhr.open "GET", "http://bluecrabstv.do.am/Free.m3u", False
xhr.open "GET", "http://urlcut.ru/t.m3u", False
xhr.open "GET", "http://tv.cyxym.net/files/playlist-unicast.m3u", False
xhr.open "GET", "http://dmitry-tv.my1.ru/iptv/Dmitry-tv.m3u", False
xhr.open "GET", "http://tv-smart-tv.ru/iptv/iptvforever.m3u", False
xhr.open "GET", "http://strtv.zzz.com.ua/strtv.m3u", False
попробовал выражения:
Код: Выделить весь код
.*/(.*\.m3u)",.*
\.savetofile "\./plist/$1", 2 '//overwrite
получил:
http://forum.oszone.net/attachment.p...1&d=1561315569, Вас это устраивает?

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 23-06-2019 в 21:58.

Это сообщение посчитали полезным следующие участники:

Отправлено: 21:50, 23-06-2019 | #6


Старожил


Сообщения: 221
Благодарности: 18

Профиль | Отправить PM | Цитировать


Цитата megaloman:
Вас это устраивает? »
megaloman, да, вполне, хотя планируется использовать не notepad++, а утилиту nhrt.exe . Но синтаксис регулярных выражений у них почти одинаковый.
Ваш RegExp отлично работает, как и составленный ув. Iska.
Спасибо большое за помощь!

Отправлено: 22:42, 23-06-2019 | #7



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - [решено] RegExt для вытаскивания имени файла из ссылки

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Любой язык - [решено] сортировать ссылки по алфивиту в имени файла Alexander_88 Скриптовые языки администрирования Windows 7 06-11-2021 01:40
.NET - Ошибка открытия файла из-за длинного полного имени файла tumanovalex Программирование и базы данных 8 13-05-2018 23:21
Любой язык - [решено] Как вытащить ссылки из файла .json ? Extazik Скриптовые языки администрирования Windows 8 19-10-2015 14:14
CMD/BAT - Использование имени файла для правки в теле файла. xkafkax Скриптовые языки администрирования Windows 8 20-07-2013 11:06
VBS/WSH/JS - [решено] Скрипт дла вытаскивания определённых событий из журнала ОС SANIOK_AV Скриптовые языки администрирования Windows 2 22-10-2009 12:43




 
Переход