За последние 24 часа нас посетили 17817 программистов и 1622 робота. Сейчас ищут 972 программиста ...

не могу составить регуляоное выражение... Help(

Тема в разделе "PHP для новичков", создана пользователем OdieZlo, 5 фев 2009.

  1. OdieZlo

    OdieZlo Активный пользователь

    С нами с:
    1 ноя 2008
    Сообщения:
    14
    Симпатии:
    0
    Всем доброго времени суток!
    Помогите пожалуйста составить правильное регулярное выражение.
    Смысл такой:
    Программка получает список сайтов из базы (MySQL) и в цикле удаляет http://www и всё что идёт после /
    Это нужно для тог чтобы в последствии подставить доменные имена в код Яндекса, и получить тиц ресурса.
    Вот моё выражение:
    Код (Text):
    1. preg_match('/[^http:\/\/www\.]([0-9a-zA-Z\.-]*)/', $row['Link'], $cy);
    вроде всё работает, но в некоторых случаях вместе с точкой удаляется и первая буква доменного имени? если они начинаются на h t p или w, в общем всё что указанно в
    Код (Text):
    1. [^http:\/\/www\.]
    пробовал писать так
    Код (Text):
    1. [^(http:\/\/www\.)]
    не помаглао)))
    В общем… что то я не пойму, если мы берём это всё в скобки
    Код (Text):
    1. (http:\/\/www\.)
    , и потом ещё в квадратные скобки, и говорим что нам это не надо
    Код (Text):
    1. [^(http:\/\/www\.)]

    То что за нах!!! Где ж я не то написал:?
     
  2. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    лучшая регулярка это str_replace();
    =)

    в твом случае я бы сделал parse_url и взял оттуда все, что надо

    http://php.ru/manual/ref.url.html
     
  3. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
  4. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    Sergey89

    неее. я первый.
    =)
     
  5. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    нифига =)
     
  6. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    умный...
    выпей йаду!

    =))))))))))))))))
     
  7. OdieZlo

    OdieZlo Активный пользователь

    С нами с:
    1 ноя 2008
    Сообщения:
    14
    Симпатии:
    0
    Атлично!
    Парни! True Respect!!!)))

    Но всё же... у меня явная ошибка в написании регулярного выражения...
    если не сложно объясните... можно лит писать такое
    [^(text)]
    я его понимаю так, всё что в скобках, целиком (а не по отдельности каждый симвл) брать не нужно по скольку всё это взято в [^ ].
    или я что то путаю:?
     
  8. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    правильно. ошибка. ты не тем молотком гвоздь забиваешь. эту задачу рашеют в два этапа.

    1. распрсть урл (ссылку дали)
    2. из полученного массива получть домен и все, что надо.

    а регулярками такое делать - себя н уважать
     
  9. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    это назывется паттерн, но оно тебе надо?
    =)
     
  10. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    патерн определяющий все символы не принадлежащие скобокам и буквам t e x
     
  11. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    вобще как-то так
    Код (Text):
    1. /^http:\/\/(?:www\.)?([^\/]+)/i
     
  12. OdieZlo

    OdieZlo Активный пользователь

    С нами с:
    1 ноя 2008
    Сообщения:
    14
    Симпатии:
    0
    То что я фигнёй занимался, я уже понял)
    parse_url TRUE STUFF!!!
    Но просто если есть ошибки, их надо исправлять... регулярные выражения на мой взгляд оч нужная штука!
    так что я вас мучать не буду, пойду читать маны и факи!)))
    А то у мну уже столько вопросво накопилось по поводу двух предыдущих мессаг... что можуно уже новую тему создовать! LoL
    Всем <strong>огромное</strong> спасибо !!!
    Зановес!