Вынуть ссылку из текста. (помогите)

Тема в разделе "Регулярные выражения", создана пользователем Compressor, 23 авг 2009.

Статус темы:
Закрыта.
Модераторы: xpert13
  1. Compressor

    Compressor

    Регистр.:
    31 янв 2009
    Сообщения:
    314
    Симпатии:
    200
    Помогите, пожалуйста, выпарсить текст ссылки из текста регуляркой. Строки разделены "\r\n"

    Нужно выпарсить http_//vkontakte.ru/confirm.php?code=e4f1e65eda7cc48fadcd8dfe92515498

    code и окружающие строки всегда разные!
     
  2. tostrss

    tostrss

    Регистр.:
    16 окт 2007
    Сообщения:
    771
    Симпатии:
    217
    PHP:
    preg_match_all('%http://vkontakte\.ru/confirm\.php\?code=([a-f0-9]{32})%i'$text$ret);
    print_r($ret);
     
    Compressor нравится это.
  3. oleg3d

    oleg3d Создатель

    Регистр.:
    11 дек 2009
    Сообщения:
    34
    Симпатии:
    2
    Скобки чуть не там
    Код:
    preg_match_all('%(http://vkontakte\.ru/confirm\.php\?code=[a-f0-9]{32})%i', $text, $ret);
    print_r($ret);
    
    Вопрос кстати перед . и ? нужен обратный слеш?
    По-моему в данном случае все-равно.
     
  4. Alternator

    Alternator

    Регистр.:
    23 мар 2009
    Сообщения:
    295
    Симпатии:
    145
    в общем случае нужны во избедание глюков
    без слешей под данную регулярку бы подошла строка
    Код:
    http://vkontakte#ru/confirm#phpppppppppp?code=e4f1e65eda7cc48fadcd8dfe92515498
    
     
  5. RolCom

    RolCom

    Регистр.:
    12 мар 2008
    Сообщения:
    351
    Симпатии:
    108
    Нужны, т.к. . и ? имеют специальное значение, . это любой символ, а ? означает, что предыдущее подвыражение может присутствовать один или ноль раз.
     
  6. SimpleWarrior

    SimpleWarrior Писатель

    Регистр.:
    25 дек 2009
    Сообщения:
    9
    Симпатии:
    1
    Код:
    preg_match_all('!http.+code=.+\s!iU',$subject, $return);
    Попробуй эту регулярку.
     
Статус темы:
Закрыта.