Удаление строк через Notepad++

Тема в разделе "Регулярные выражения", создана пользователем Goldberg, 2 фев 2016.

Модераторы: xpert13
  1. Goldberg

    Goldberg

    Регистр.:
    3 дек 2012
    Сообщения:
    189
    Симпатии:
    28
    В файлах .php есть несколько строк повторяющегося кода (примечания)
    Код:
    /*
    *****************************
        Note: (здесь разные номера примечаний)
        File:  (здесь разные название файла)
        Built: (здесь разные даты)
        Url (здесь ссылка)
    *****************************
    */
    Эти строки нужно удалить из 1000 файлов. Я пробовал воспользоваться подсказками из темы https://www.nulled.in/threads/233157/, но ничего не получилось((

    Прошу помощи профессионалов в составлении регулярного выражения для Notepad++
     
  2. lag

    lag

    Регистр.:
    13 окт 2014
    Сообщения:
    240
    Симпатии:
    318
    Например, так https://regex101.com/r/uT7nS1/2
    Найти: /\*\s+\*{29}(?-s:\s+(?:Note|File|Built|Url).+)++\s+\*{29}\s+\*/
    Заменить на:
     
    Последнее редактирование: 2 фев 2016
    Goldberg нравится это.
  3. javx

    javx

    Регистр.:
    28 авг 2015
    Сообщения:
    527
    Симпатии:
    252
    Goldberg нравится это.
  4. Goldberg

    Goldberg

    Регистр.:
    3 дек 2012
    Сообщения:
    189
    Симпатии:
    28
    Спасибо за помощь, немножко помогло.
    Глючный какой-то Notepad++ в плане работы с регулярными выражениями. Первым способом ничего не нашёл, а вторым - 6 файлов :D
    Я подправил выражение:
    /\*\n\*{29}.*\*{29}\n\*\/
    и нашёл ещё 11 файлов.
    После этого, как я ни исправлял, ничего не находит. Хотя, если искать по Url или по Built, находит около тысячи файлов.

    Может есть ещё какие-нибудь мысли?
     
  5. javx

    javx

    Регистр.:
    28 авг 2015
    Сообщения:
    527
    Симпатии:
    252
    дословно - этот момент \s\n значит что есть один пробел и после него перенос строки. Если не везде нашло - то там может быть не один пробел(например) и условие не сработает напиши вместо \s ~ \s* . "*"- означает 0 или большее число символов. Если не получится - скопируй разные варианты этих комментариев и прикрепи файл, я попробую за тебя сделать регулярку.
     
    Goldberg и NULLED555 нравится это.
  6. Goldberg

    Goldberg

    Регистр.:
    3 дек 2012
    Сообщения:
    189
    Симпатии:
    28
    Спасибо, но не помогло(
    Зато при помощи такого выражения:
    /\*\n\s*\*{29}.*\*{29}\n\*\/
    я смог найти примечания ещё в 793 файлах :yahoo:

    Пока подбирал и составлял регулярку, нашёл в инетах картину-подсказку. Положу здесь, может кому пригодится
    Осталось ещё около 200 файлов с примечанием. Вроде содержимое похоже, но через регулярное выражение не ищет.
     
  7. javx

    javx

    Регистр.:
    28 авг 2015
    Сообщения:
    527
    Симпатии:
    252
    по любому какое то отличие есть, может звездочек другое количество или табуляция стоит. Мышкой по выделяй пустые места - заметишь.
     
  8. xpert13

    xpert13 <(*_*)>

    Moderator
    Регистр.:
    7 ноя 2008
    Сообщения:
    182
    Симпатии:
    457
    Такие блоки только в начале файла встречаются? Если да - то попробуй следующий вариант:

    Код:
    (?-m)^\s+/\*[\s\S]+?\*/