За последние 24 часа нас посетили 22866 программистов и 1268 роботов. Сейчас ищут 870 программистов ...

Не выполняется регулярное выражение

Тема в разделе "PHP для новичков", создана пользователем hardway, 29 июн 2019.

  1. hardway

    hardway Новичок

    С нами с:
    12 июн 2018
    Сообщения:
    24
    Симпатии:
    0
    Допустим, что есть такая строка с переносами:

    [QUOTE name=hardway][B]12[/B]
    [CSS]h {
    color: black;
    }[/CSS][/QUOTE]

    Нужно найти эту строку регулярным выражением. Для этого у меня есть следующее регулярное выражение:

    /\[QUOTE\s+name=(\w+)\](.*)\[\/QUOTE\]/ui

    Но это регулярное выражение написано как-то не так для поиска такого типа строки, поэтому и возвращает false. Как я понимаю, всё дело в (.*), но вот на что это поменять — не знаю.
     
  2. Artur_hopf

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

    С нами с:
    7 май 2018
    Сообщения:
    2.266
    Симпатии:
    405
    PHP:
    1. <?php
    2. $str = '[QUOTE name=hardway][B]12[/B]
    3. [CSS]h {
    4. color: black;
    5. }[/CSS][/QUOTE]';
    6.  
    7. preg_match('/\[QUOTE\s+name=(\w+)\](.*)\[\/QUOTE\]/s', $str, $matches);
    8.  
    9. print_r($matches);
    PHP:
    1. <?php
    2. $str = '[QUOTE name=hardway][B]12[/B][CSS]h {color: black;}[/CSS][/QUOTE]';
    3.  
    4. preg_match('/\[QUOTE\s+name=(\w+)\](.*)\[\/QUOTE\]/ui', $str, $matches);
    5.  
    6. print_r($matches);
     
    hardway нравится это.