Показать полную графическую версию : [решено] RegExt для вытаскивания имени файла из ссылки
Uragan66
22-06-2019, 21:15
Доброго времени суток всем !
Прошу помощи в небольшом вопросе:
Есть текстовые файлы со строками:
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 ?
Ссылки во всех текстовых файлах разные »
Вот поэтому стоило выложить кучу примеров этих ссылок.
но все с расширением .m3u »
Далее следует шаблон, в котором нет никакого упоминания .m3u. Как так?
Шаблон для поиска на базе PRCE:
.*\"http:\/\/.+\/(.+\.m3u)\", False
Для замены:
.savetofile "./plist/$1", 2 '//overwrite
P.S. RegEx или RegExp (regular expressions), но никак не RegExt.
Uragan66
23-06-2019, 10:15
P.S. RegEx или RegExp (regular expressions), но никак не RegExt. »
да просто случайная ошибка, машинально, не заметил...
Вот поэтому стоило выложить кучу примеров этих ссылок. »
выложить то можно, но это ссылки на самообновляемые плейлисты с интернета и, попробуй угадай, какую ссылку сам автор выложит...
ссылки могут быть разной длины
Далее следует шаблон, в котором нет никакого упоминания .m3u. Как так? »
шаблон нашел в интернете, переделал под себя, он ищет имена файлов с любым расширением.
он то нормально отрабатывает, но отрезает первую букву в имени файла
Шаблон для поиска на базе PRCE: »
Iska, спасибо, но почему-то не срабатывает этот шаблон:
http://images.vfl.ru/ii/1561274025/ed7ffe04/26975921.jpg
Iska, спасибо, но почему-то не срабатывает этот шаблон: »
Про что и речь. Вы выкладываете кучу ссылок, мы пытаемся найти в них закономерности. В данном случае выяснилось, что протокол может быть и https, а в uri может присутствовать больше частей. Посему пока так:
.*\"https?:\/\/.+\/(.+\.m3u)\", False
И да — выкладывайте ещё и текстом: мало удовольствия перенабирать uri с картинки «ручками».
Uragan66
23-06-2019, 14:12
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
а может и ещё какие попадутся, всё зависит от автора плейлиста, куда он его зальет...
megaloman
23-06-2019, 21:50
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.php?attachmentid=157917&stc=1&d=1561315569, Вас это устраивает?
Uragan66
23-06-2019, 22:42
Вас это устраивает? »
megaloman, да, вполне, хотя планируется использовать не notepad++, а утилиту nhrt.exe (https://nhutils.ru/blog/nhrt/) . Но синтаксис регулярных выражений у них почти одинаковый.
Ваш RegExp отлично работает, как и составленный ув. Iska.
Спасибо большое за помощь!
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.