За последние 24 часа нас посетили 22499 программистов и 1038 роботов. Сейчас ищут 695 программистов ...

почему не работает выражение

Тема в разделе "Регулярные выражения", создана пользователем vikrorpert, 18 июл 2019.

  1. vikrorpert

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

    С нами с:
    13 окт 2010
    Сообщения:
    984
    Симпатии:
    10
    Код (Text):
    1. $s='https://php.ru'
    2. preg_match('|https(.*?)|', $s, $m);
     
  2. Artur_hopf

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

    С нами с:
    7 май 2018
    Сообщения:
    2.266
    Симпатии:
    405
    PHP:
    1. <?php
    2.  
    3. $s="https://php.ru";
    4.  
    5. $url = parse_url($s);
    6.  
    7. echo $url['host'];
     
  3. vikrorpert

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

    С нами с:
    13 окт 2010
    Сообщения:
    984
    Симпатии:
    10
    если на то пошло то мне надо получить имя домена без http, www, и доменной зоны
    но все же интересно почему не ищется выражение (.*?)
     
  4. Artur_hopf

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

    С нами с:
    7 май 2018
    Сообщения:
    2.266
    Симпатии:
    405
  5. vikrorpert

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

    С нами с:
    13 окт 2010
    Сообщения:
    984
    Симпатии:
    10
    значит без ? работает
    (.*?) а тут получается не работает
     
  6. miltorg

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

    С нами с:
    7 апр 2019
    Сообщения:
    375
    Симпатии:
    12
    Адрес:
    Калининград
    А что вы хотите получить?

    /https(.*?)/ - любой символ повторённый 0 или любое число раз, жадный $1= 0

    Всё правильно.
     
  7. miltorg

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

    С нами с:
    7 апр 2019
    Сообщения:
    375
    Симпатии:
    12
    Адрес:
    Калининград
    /https(.*?)/ - любой символ повторённый 0 или любое число раз, ленивый - $1= ""

    Всё правильно.