найти первое упоминание тега <h3>текст</h3> и заменить на <h4>текст<h4>

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

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

    abody

    Регистр.:
    14 сен 2006
    Сообщения:
    239
    Симпатии:
    153
    Задача:
    найти первое упоминание тега <h3>текст</h3> и заменить на <h4>текст<h4>

    Пример
    ....
    <h3>текст</h3>
    <h3>текст</h3>
    <h3>текст</h3>

    Получаем:
    <h4>текст</h4>
    <h3>текст</h3>
    <h3>текст</h3>

    Спасибо!
     
  2. ВладимирТрой

    ВладимирТрой Постоялец

    Регистр.:
    29 янв 2013
    Сообщения:
    53
    Симпатии:
    19
    $text = preg_replace ("#<h3>([^<]+)<\/h3>#si", "<h4>$1</h4>", $text, 1);
    соответственно в переменной $text текст для замены
     
    plitka нравится это.
  3. abody

    abody

    Регистр.:
    14 сен 2006
    Сообщения:
    239
    Симпатии:
    153
    возможно не совсем правильно выразился:
    в примере:
    <h3>текст</h3> (известно, что присутствует где-то в тексте)
    <h3>текст</h3>(не ясно точно есть ли в документе)
    <h3>текст</h3>(не ясно точно есть ли в документе)
     
  4. ВладимирТрой

    ВладимирТрой Постоялец

    Регистр.:
    29 янв 2013
    Сообщения:
    53
    Симпатии:
    19
    так скрипт в любом случае найдет первое вхождение и заменит, так если:
    Код:
    <h3>текст</h3> (известно, что присутствует где-то в тексте)
    <h3>текст</h3>(не ясно точно есть ли в документе)
    <h3>текст</h3>(не ясно точно есть ли в документе)
    
    то скрипт найдет
    Код:
    <h3>текст</h3> (известно, что присутствует где-то в тексте)
    
    и заменит а остальные уже в любом случае участвовать не будут (присутствуют они или нет - уже нет разницы)
     
    abody нравится это.
  5. abody

    abody

    Регистр.:
    14 сен 2006
    Сообщения:
    239
    Симпатии:
    153
    ещё раз извините, а можно на Perl, мне для Зеброида нужно, что то из этого:
    ищим: <h4>.*?[\r\n]+(.*)</h4>
    замена: \1

    но у меня вывод не получается, что-то не так делаю

    сели вечером и решили, спасибо !
    <h3>([^<]+)</h3>(.*)
     
Статус темы:
Закрыта.