Python 2.7 Regex не соответствует желаемому шаблону - PullRequest
0 голосов
/ 20 сентября 2018

Я анализирую все строки файла .m3u, содержащего данные моего списка воспроизведения IPTV.Я ищу, чтобы изолировать и распечатать строковые разделы в файле в формате:

tvg-logo="http//somelinkwithapicture.png"

.. внутри строки, которая выглядит следующим образом:

#EXTINF:-1 catchup="default" catchup-source="http://someprovider.tv/play/dvr/${start}/2480.m3u8?token=%^%=&duration=3600" catchup-days=5 tvg-name="Sky Sports Action HD" tvg-id="SkySportsAction.uk" tvg-logo="http://someprovider.tv/logos/sky%20sports%20action%20hd.png" group-title="Sports",Sky Sports Action HD
http://someprovider.tv/play/2480.m3u8?token=465454=

Мой класс выглядит так:

import re

class iptv_cleanup():

    filepath = 'C:\\Users\\cg371\\Downloads\\vget.m3u'

    with open(filepath, "r") as text_file:
        a = text_file.read()
        b = re.search(r'tvg-logo="(.*?)"', a)
        c = b.group()
        print c

    text_file.close

iptv_cleanup()

Все, что я получаю, это строка вроде этого:

tvg-logo=""

Я немного заржавел с регулярными выражениями, но я не вижу ничего явно неправильного в этом.

Кто-нибудь может помочь?

Спасибо

Ответы [ 2 ]

0 голосов
/ 20 сентября 2018

В итоге это сработало:

import re

class iptv_cleanup():

    filepath = 'C:\\Users\\cg371\\Downloads\\vget.m3u'

    with open(filepath, "r") as text_file:
        a = text_file.read()
        b = re.findall(r'tvg-logo="(.*?)"', a)

        for i in b:

            print i


    text_file.close

iptv_cleanup()

Спасибо за ваш вклад всем ...

0 голосов
/ 20 сентября 2018

Чек (?:tvg-logo=\")[\w\W]*(?<=.png)

import re
reg = '(?:tvg-logo=\")[\w\W]*(?<=.png)'

string = '#EXTINF:-1 catchup="default" catchup-source="http://someprovider.tv/play/dvr/${start}/2480.m3u8?token=%^%=&duration=3600" catchup-days=5 tvg-name="Sky Sports Action HD" tvg-id="SkySportsAction.uk" tvg-logo="http://someprovider.tv/logos/sky%20sports%20action%20hd.png" group-title="Sports",Sky Sports Action HD http://someprovider.tv/play/2480.m3u8?token=465454='

print re.findall(reg,string, re.DOTALL)[0]

$python main.py
tvg-logo="http://someprovider.tv/logos/sky%20sports%20action%20hd.png
...