Помогите с регуляркой



  • Всем привет, парни помогите с регуляркой бьюсь второй день, никак допетрить не могу как вытащить id групп в фейбуке
    Необходимо вытащить из <a href="/groups/perthGSDplaydates/?ref=br_rs" data-testid="serp_result_link#2@EntGroup">Perth German Shepherd Play Dates</a> только perthGSDplaydates или цифровой id соответственно
    вот файлик с кодом https://yadi.sk/i/a39laNAsyaGXN

    Заранее спасибо!!!


  • administrators

    @BigLebovski

    \/groups\/([^\/]+)\/ Вот так у меня работает
    0_1479127812777_regexpgroupfb.xml



  • Добрый день всем.
    Ещё раз спасибо за софт!
    Вопрос мелкий, новую тему создавать нецелесообразно )
    Как через регулярные выражения сделать так, чтобы на выходе получить только первое вхождение, а не список. Только через доп операцию получения первого элемент списка?



  • @xclsv есть же в регуялрных выражения пункт первое вхождение



  • @DrPrime
    Да? Ткните, пожалуйста, носом, если несложно =)



  • @DrPrime
    Нашёл! Спасибо! Разбираюсь, как пользоваться =)



  • Помогите, плз, расшифровать ошибку:

    [16:04:29] Поток №1 : SyntaxError: Parse error Номер строки:2 Во время выполнения скрипта { VAR_PARSED_LIST = (VAR_SAVED_XML).split(<ul\ id="(\w+\d+)") section_start("test", 17403,function(){ })}

    Регулярку составлял при помощи конструктора. Что не так в синтаксисе?



  • @xclsv said in Помогите с регуляркой:

    Помогите, плз, расшифровать ошибку:

    [16:04:29] Поток №1 : SyntaxError: Parse error Номер строки:2 Во время выполнения скрипта { VAR_PARSED_LIST = (VAR_SAVED_XML).split(<ul\ id="(\w+\d+)") section_start("test", 17403,function(){ })}

    Регулярку составлял при помощи конструктора. Что не так в синтаксисе?

    Не знаю, почему, но вдруг всё заработало =)
    Так что не актуально =) Спасибо за ответы )



  • Други приветствую! Помогите с регуляркой, пробую через BAS-овский конструктор, нифига не работают у меня его регулярки :( , надо вытянуть из ответа сервера то что между - The following address(es) failed: и ------ This is a copy of the message, including all the headers. ------ хотя предпочтительнее сразу выдернуть email адреса было бы...

    A message that you sent could not be delivered to one or more of its
    recipients. This is a permanent error. The following address(es) failed:
    
      sldutchak@rambler.ru
        SMTP error from remote mail server after RCPT TO:<sldutchak@rambler.ru>:
        host inmx.rambler.ru [81.19.78.65]: 540 5.7.1 <sldutchak@rambler.ru>:
        recipient address rejected: Blocked
      natali-sirena@rambler.ru
        SMTP error from remote mail server after RCPT TO:<natali-sirena@rambler.ru>:
        host inmx.rambler.ru [81.19.78.65]: 540 5.7.1 <natali-sirena@rambler.ru>:
        recipient address rejected: Blocked
      stepa3504@rambler.ru
        SMTP error from remote mail server after RCPT TO:<stepa3504@rambler.ru>:
        host inmx.rambler.ru [81.19.78.65]: 540 5.7.1 <stepa3504@rambler.ru>:
        recipient address rejected: Blocked
    
    ------ This is a copy of the message, including all the headers. ------
    


  • @bigorat Самое элементарное:

    <(.*@*.)>
    

    Хоть и выглядит специфически :D
    Вытягивает все эмейлы между < и >

    Либо более сложное:

    (\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,6})
    

    А вообще, вот хорошая шпаргалка.
    alt text



  • @Fox, эти регулярки я знаю, но простыня из которой парсить надо гораздо больше и с ненужными email-ми, суть в том что надо выдрать именно то что между:

    A message that you sent could not be delivered to one or more of its
    recipients. This is a permanent error. The following address(es) failed:
    

    и

    ------ This is a copy of the message, including all the headers. ------
    

    Составляю регулярку в конструкторе

    This\ is\ a\ permanent\ error\.\ The\ following\ address\(es\)\ failed:\ \ (.+?)\-\-\-\-\-\-\ This\ is\ a\ copy\ of\ the\ message\,\ including\ all\ the\ headers\.\ \-\-\-\-\-\-
    

    но не пашет она :(

    А регулярка из зеннопостера

    (?<=The\ following\ address\(es\)\ failed:)[\w\W]*?(?=------\ This\ is\ a\ copy\ of\ the\ message,\ including\ all\ the\ headers\.\ ------)
    

    сразу отлавливавает на ура...



  • @bigorat Непонятно зачем пробелы экранировать..
    Попробуй так, будешь получать всё, как ты и просил.

    A message that you sent could not be delivered to one or more of its
    recipients\. This is a permanent error\. The following address\(es\) failed:([\s\S]*)------ This is a copy of the message, including all the headers\. ------
    

    А из полученных данных уже можно забирать мыло.

    (\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,6})
    

    Можно конечно сделать одну регулярку, но надёжнее в несколько этапов.



  • @bigorat Если убрать из твоей регулярки экранирование пробелов, то она тоже будет работать:

    (?<=The following address\(es\) failed:)[\w\W]*?(?=------ This is a copy of the message, including all the headers\. ------)
    


  • @Fox, нет, те же яйца но в профиль, не работает, может я отлавливаю не так, может нужно не через "Первое вхождение"? Хотя на этом этапе парсинга списка мыл тоже не происходит что бы извлекать все данные...



  • @Fox said in Помогите с регуляркой:

    Если убрать из твоей регулярки экранирование пробелов, то она тоже будет работать:

    Нет, BAS ошибку бьет

    SyntaxError: Invalid regular expression: unrecognized character after (? Номер строки:2 Во время выполнения скрипта { _sa(516294413); VAR_STRING_MATCHES = Boolean((VAR_SAVED_TEXT_PAGE).match(new RegExp("(?\u003c=The following address\u005c(es\u005c) failed:)[\u005cw\u005cW]*?(?=------ This is a copy of the message, including all the headers\u005c. ------)"))) section_start("test", 441185482,function(){ })} 
    


  • @bigorat Дай по больше исходного кода, накидаю скрипт.



  • @Fox said in Помогите с регуляркой:

    Дай по больше исходного кода, накидаю скрипт.

    Да вот файл с сохраненным ответом, надо из него выпарсить между определенными частями email адреса
    Млин, форум не дает файл воткнуть, на ЯД кинул https://yadi.sk/i/6hV9JF-b3MT8dm



  • @bigorat Немного замудрено, потому что не знаю исходных. Большой ли ответ, сколько раз будут повторятся данные и т.п.

    Вот тестовый скрипт.



  • @Fox, короче твой вариант работает, разница в том, что почему то экшен "Извлечь все данные" такую регулярку принимает, а экшен "Первое вхождение" нифига, почему хз :( Теперь заработало, спасибо!



  • @bigorat Не знаю почему у тебя не работает. Вот пример с первым вхождением.



  • @Fox, спасибо, все же в BAS-е присутствует иногда что то мистическое, вплоть до перезагрузки проги, вышел, вошел и заработало :)


Log in to reply
 

Looks like your connection to Bablosoft was lost, please wait while we try to reconnect.