ЭНЦИКЛОПЕДИЯ СОВРЕМЕННОГО САЙТОСТРОЕНИЯ

Регулярные выражения в Notepad++. Нежадные выражения

Тема в разделе "Редакторы кода", создана пользователем Стас, 29 янв 2016.

  1. Стас

    Стас Пользователь

    Сообщения:
    18
    Рейтинг:
    23
    Всем привет. Возникла необходимость заменить код в базе данных MySQL.

    Но проблема как это сделал. В общем пискал решение и нашел.

    1. Делаем дамп базы данных MySQL. Как сделать дамп написано здесь.
    2. Скачиваем, загружаем в нотепад++. Предварительно выключаем в нем перенос строк, т.к. иначе при большой БД обработка будет очень медленной.

    Собственно задача:

    Надо выражение - некий блок меню обернуть дополнительным тегом <nav>. Блоков меню очень много и вручную до них не добраться.

    Собственно блок выглядит так в дампе.

    Код:
    <div class=\"tags\">\r\n<span>\r\n<a class=\"label label-info\" href=\"http://xxx">xxx</a>\r\n</span>\r\n<span>\r\n<a class=\"label label-info\" href=\"http://xxx">xxx</a>\r\n</span>\r\n</div>
    Нам надо найти все эти блоки добавить вначале и в конце их теги <nav> и </nav>

    Итак в нотепад открываем замена
    В найти вписываем
    Код:
    (<div class=\\"tags\\">.*?</div>)
    В заменить вписываем
    Код:
    <nav>\1</nav>
    Ставим переключатель в Регулярные выражения, зацикливаем поиск.

    Обратите внимание, что бы все сработало надо применять нежадное выражение для поиска содержимого между тегами
    Код:
    <div class=\\"tags\\"> и </div>
    - это
    Код:
    .*?
    Если вы введете
    Код:
    .*
    то будет выделен весь текст между первым найденным тегом
    Код:
    <div class=\\"tags\\">
    и последним
    Код:
    </div>
     
    Последнее редактирование модератором: 29 янв 2016
    #1