Как превратить ссылку в регулярные выражения?

Discussion in 'PHP' started by deny29, 6 Dec 2017.

  1. deny29

    deny29 New Member

    Joined:
    3 Dec 2017
    Messages:
    8
    Likes Received:
    0
    Reputations:
    0
    Всем привет!
    Настраиваю граббер, и столкнулся с проблемой нахождения ссылок с помощью регулярок. Я собственно так и не понял принципа их работы...
    Надеюсь на помощь, что-то все игнорят этот вопрос)

    В общем
    Есть ссылка вида: *****/6198/Regal-to-be-acquired-by-Cineworld-in-a-deal-worth-36bn
    Регулярка вроде бы должна быть так: \d{1,}/[\w\d]{1,}
    Но вот такой результат получаю: /6198/Regal - дальше пусто.

    Но если сделать так: \d{1,}/\S{1,} я получаю полную ссылку, но на ее конце вижу "> как убрать - не понимаю..

    Может кто дружит с регулярками?
    Заранее спасибо!
     
  2. Xtezy

    Xtezy Elder - Старейшина

    Joined:
    19 Nov 2008
    Messages:
    154
    Likes Received:
    38
    Reputations:
    27
    \d{1,}/[\w\d-]{1,}
    но вот {1,} это убого.
    \d+/[\w\d-]+
    так аккуратнее
     
    deny29 likes this.
  3. deny29

    deny29 New Member

    Joined:
    3 Dec 2017
    Messages:
    8
    Likes Received:
    0
    Reputations:
    0
    Вот это я понимаю человек шарит в регулярках))) спасибо все работает!
    А вы можете помочь еще с одной ссылкой? Там просто вообще беда, что не делаю wpgrabber ссылки не находит, если ввести в ссылку ru находит но если язык убрать и выйдет по умолчанию en, все, ссылок 0... Или это с регулярками не связано?
     
  4. Xtezy

    Xtezy Elder - Старейшина

    Joined:
    19 Nov 2008
    Messages:
    154
    Likes Received:
    38
    Reputations:
    27
    пример покажи и свою регулярку и что находит.
     
  5. deny29

    deny29 New Member

    Joined:
    3 Dec 2017
    Messages:
    8
    Likes Received:
    0
    Reputations:
    0
    Спасибо!
    Вот сама ссылка: www.instaforex.com/ru/forex_analysis?type=1
    Вот регулярка: \d+
    Получаю результат набор цифр, но если убрать с ссылки язык, все, результат нулевой.
    И я вот понять не могу, это из за регулярки или что-то с самой ссылкой, язык ссылки по дефолту - инглишь.
    Как вы думаете?
     
  6. Xtezy

    Xtezy Elder - Старейшина

    Joined:
    19 Nov 2008
    Messages:
    154
    Likes Received:
    38
    Reputations:
    27
    \d - это цифра. у тебя же урл не только из цифр состоит, на самом деле в урле может быть достаточно много всяческих разных символов.
    я бы на твоем месте почитал про регулярки. можешь конкретно гуглить как распарсить урл с помощью регулярок. примеры с объяснением в сети имеются.
    пробуй типа такого: href="https?://(.+?)" - для хтмл сущности.
     
    deny29 likes this.
  7. r0

    r0 Elder - Старейшина

    Joined:
    17 Jul 2005
    Messages:
    450
    Likes Received:
    149
    Reputations:
    147
    Чтобы понять регулярные выражения.... надо понять регулярные выражения :)
    На самом деле, всё достаточно просто, изучив сущности, например,
    Code:
    \d --- любая цифра
    \w --- любой символ
    \s -- любой пробельный символ 
    {1,}  -- количество вхождений (повторений), не менее 1
    
    И другие, вы просто читаете их, это намного проще, чем пытаться скомпилировать какую-то целостную строку в своем сознании.

    В данном примере:
    Code:
    \d{1,}                               #любая цифра, вхождений не менее 1
    /                                      # за ней слэш
    [\w          \d-]{1,}             #за ней группа из букв и цифр с тире, вхождений не менее 1
    
    Тут важна практика - разбив задачу на малые части, просто переходить от простого (поиск слов, цифр, поиск определенных слов, начинающихся с http:) к более сложным (поиск телефонов, поиск e-mail, url и т.д.).

    Касательно url:
    попробуйте ((?:https?\:\/\/|www\.)(?:[-a-z0-9]+\.)*[-a-z0-9]+\S*)
    https://regexr.com/3hlea

    На данном сервисе очень удобно тестирвоать свои регулярки.
     
    deny29 likes this.
  8. deny29

    deny29 New Member

    Joined:
    3 Dec 2017
    Messages:
    8
    Likes Received:
    0
    Reputations:
    0
    Плюнул я на этот сайт, бред какой-то, с указанием языка все хорошо работает, как только его убираю все перестает работать. Регулярка указана верно, это походу сам граббер тупит.. В общем, другой сайт найду.
    Всем спасибо за помощь.
     
  9. panic.ker

    panic.ker Member

    Joined:
    25 Aug 2013
    Messages:
    86
    Likes Received:
    69
    Reputations:
    3