[Регулярки & Mod_Rewrite] Задай вопрос, получи ответ.

Discussion in 'PHP' started by .:EnoT:., 19 Nov 2008.

Thread Status:
Not open for further replies.
  1. Edward

    Edward Banned

    Joined:
    11 Feb 2010
    Messages:
    329
    Likes Received:
    21
    Reputations:
    -1
    Вторая регулярка работает хорошо, а первая берет УРЛ, но еще и цепляет то, что идет дальше теги title (для ссылки) и style, пример:

    Можете подправить, что б выдирало только то, что в кавычках тега href ?
     
  2. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    Edward preg_match_all('#<a.*href=[^ ](/[^ ]+)[^ ][^>]*>#U', $html, $a);
     
    _________________________
  3. Edward

    Edward Banned

    Joined:
    11 Feb 2010
    Messages:
    329
    Likes Received:
    21
    Reputations:
    -1
    Спасибо, а подскажите еще регулярку, что бы вытянуть из HTML кода то, что выделено жирным:

    Code:
    <img src="[B]//counter.yadro.ru/hit?t44.11;r;s1024*768*32;uhttp%3A//acer-fans.in/;0.28607583162374794[/B]" alt="" title="LiveInternet" border="0" width="31" height="31">
    
     
  4. mironich

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

    Joined:
    27 Feb 2011
    Messages:
    733
    Likes Received:
    73
    Reputations:
    19
    <img src="(.*?)"
     
  5. Edward

    Edward Banned

    Joined:
    11 Feb 2010
    Messages:
    329
    Likes Received:
    21
    Reputations:
    -1
    В этом случае выдергивает все сорцы картинок, а мне нужно только те, где начинается на //counter.yadro.ru... и сейчас опять захвачиваются теги style, class, идущие дальше, т. е. на " не заканчивается.

    Попробовал по аналогии варианта Gifts`a для ссылок, только для картинок, у меня не получилось, но я в них не шарю.
     
    #1785 Edward, 23 Jun 2012
    Last edited: 23 Jun 2012
  6. mironich

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

    Joined:
    27 Feb 2011
    Messages:
    733
    Likes Received:
    73
    Reputations:
    19
    Code:
    #<img src="(.*counter\.yadro\.ru.*?)"#
    
    Вот.
    Через dom пар серы подобное сделать лучше.
     
  7. Edward

    Edward Banned

    Joined:
    11 Feb 2010
    Messages:
    329
    Likes Received:
    21
    Reputations:
    -1
    Подскажите регулярку. Нужно из подобного блока текста:

    Code:
    <div id="registrationSuccess">
                <p class="biggerText">E-mail: [B][email protected][/B]<br/>
                Пароль: <strong>[B]o0XjQwmM[/B]</strong></p>
    
    Высунуть только мыло и пароль, выделенные жирным. Спасибо.
     
  8. Melfis

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

    Joined:
    25 Apr 2011
    Messages:
    505
    Likes Received:
    105
    Reputations:
    53
    /E-mail:\s?([\w@\._]+).+?strong>(.+?)<\/strong>/
    если пхп, то ещё флаг m
     
  9. Edward

    Edward Banned

    Joined:
    11 Feb 2010
    Messages:
    329
    Likes Received:
    21
    Reputations:
    -1
    Да, PHP, и какую функцию использовать, preg_match_all() ?
     
  10. Edward

    Edward Banned

    Joined:
    11 Feb 2010
    Messages:
    329
    Likes Received:
    21
    Reputations:
    -1
    PHP:
    preg_match_all("/E-mail:\s?([\w@\._]+).+?strong>(.+?)<\/strong>/"$result_regpage$a);
    Не срабатывает. Где нужно флаг m поставить ?
     
  11. Melfis

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

    Joined:
    25 Apr 2011
    Messages:
    505
    Likes Received:
    105
    Reputations:
    53
    Пардон, флаги попутал
    PHP:
    preg_match("/E-mail:\s?([\w@\._]+).+?strong>(.+?)<\/strong>/s"$result_regpage$a);      
    echo 
    $a[1] .":"$a[2];
     
    #1791 Melfis, 27 Jun 2012
    Last edited: 27 Jun 2012
    1 person likes this.
  12. Rastamanka

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

    Joined:
    26 Nov 2008
    Messages:
    429
    Likes Received:
    11
    Reputations:
    7
    HTML:
    app2388722_13759906#t20120629145304rbo9684f77d1d8fda8ece9b17b29f4230c233abc3313759906\" title=
    Подскажите как выпарсить значение между app2388722_ и \" title= с помощью RexExpr
     
  13. Skofield

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

    Joined:
    27 Aug 2008
    Messages:
    960
    Likes Received:
    392
    Reputations:
    58
    Rastamanka
    PHP:
    preg_match('~app2388722_([[:print:]]+)\\\" title=~'$str$match);
    print_r($match);
     
  14. mazaxaka

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

    Joined:
    15 Feb 2008
    Messages:
    268
    Likes Received:
    35
    Reputations:
    0
    как урать / ?
     
  15. Melfis

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

    Joined:
    25 Apr 2011
    Messages:
    505
    Likes Received:
    105
    Reputations:
    53
    А ты уверен что нужно убрать /, а не \ ?
    Д и стыдно вообще 4 года рега и не знать как убрать один символ -___-
    php strip_slashes()
    regexp /\/
     
  16. mazaxaka

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

    Joined:
    15 Feb 2008
    Messages:
    268
    Likes Received:
    35
    Reputations:
    0
    Code:
    my ($phu) = $resp =~  /photoUrl: 'http:\\\/\\\/(.+?).fsimg.ru\\\/(.+?)\\\/tmp_avatar_box\\\/(.+?)\\\/(.+?)\\\/(.+?)', crop:/;
    my ($phu2) = "http://$1.fsimg.ru/$2/tmp_avatar_box/$3/$4/$5";
    сделал так)
     
  17. N@b$ter

    N@b$ter Elder - Старейшина

    Joined:
    6 Oct 2009
    Messages:
    293
    Likes Received:
    73
    Reputations:
    21
    Всем алоха, хелпните с str_replace,
    есть урл такого вида
    Code:
    http://site.com/papka/paka
    Нужно удалить всё кроме site.com при чём домен может быть 3 и 4 уровня, как и папок может быть больше. Знаю что легче сделать через preg_match, но если это возможно то надо сделать через str_replace
     
  18. Skofield

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

    Joined:
    27 Aug 2008
    Messages:
    960
    Likes Received:
    392
    Reputations:
    58
    N@b$ter
    Каким образом функция str_replace относится к регулярным выражениям?
     
  19. N@b$ter

    N@b$ter Elder - Старейшина

    Joined:
    6 Oct 2009
    Messages:
    293
    Likes Received:
    73
    Reputations:
    21
    упс ошибся темой, а всё же можно ли как нибуть сделать это?
    может через preg_replace
     
  20. Skofield

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

    Joined:
    27 Aug 2008
    Messages:
    960
    Likes Received:
    392
    Reputations:
    58
    N@b$ter
    PHP:
    echo preg_replace("~http://|/.*~"""$str);
     
Thread Status:
Not open for further replies.