За последние 24 часа нас посетили 20120 программистов и 1654 робота. Сейчас ищут 1776 программистов ...

Поиск и замена многосторочного кода

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

  1. VasiliyBelov

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

    С нами с:
    8 апр 2011
    Сообщения:
    2
    Симпатии:
    0
    Адрес:
    Москва
    Приветствую, экспертов.

    На сайте есть множество страниц с таким куском кода:

    /*001*/
    тут многострочный код из любых символов английских и русских.
    и несколько строк
    /*001*/

    Комментарии в которых разная информация, на всех страницах совпадают.

    Нужно заменить везде код внутри комментариев.
    Есть программа для поиска и замены текста во множестве файлов, но вот регулярное выражение, который день не получается написать.

    Подскажите, пожалуйста, регулярное выражение для этой ситуации.
    Или программу, которая дружит с UTF-8 (испробовал штук 5, но там где UTF-8 не поддерживается многострочная замена)
     
  2. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    Notepad++
    Можно искать и заменять сразу во всех файлах в папке, можно включить и все файлы из вложенных папок.
    Также там есть поиск и замена по регулярному выражению.
     
  3. VasiliyBelov

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

    С нами с:
    8 апр 2011
    Сообщения:
    2
    Симпатии:
    0
    Адрес:
    Москва
    Но многострочного поиска нет, нужно регулярное выражение
     
  4. Crayday

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

    С нами с:
    7 апр 2011
    Сообщения:
    26
    Симпатии:
    0
    PHP:
    1.  
    2. <?
    3. $content = <<<EOF
    4. /*001*/
    5. заменяем1
    6. заменяем2
    7. /*001*/
    8. не заменяем1
    9. не заменяем2
    10. /*001*/
    11. заменяем3
    12. заменяем4
    13. /*001*/
    14. EOF;
    15.  
    16. $pattern = '/\/\*001\*\/.+?\/\*001\*\//s';
    17. $replacement = 'something';
    18. $content = preg_replace($pattern, $replacement , $content);
    19.  
    20. echo $content;
    21.