7

Я ищу регулярное выражение блокнота ++, который содержит конкретную строку. Затем я хочу удалить всю эту строку.

4 ответа4

17

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

Я бы сделал это.

Откройте поиск-замену, выберите режим регулярных выражений и выполните поиск:

^.*(string).*$ и пусть замена будет \1 (это строка, помечающая строки, которые вам не нужны). Это оставит строки только с нежелательной строкой и больше ничего.

Затем переключитесь на расширенный поиск и найдите \r\nstring и оставьте замену пустой. Это удалит строки, содержащие только нежелательную строку.

Есть, вероятно, более аккуратный способ сделать это, но это работает.

Отредактируйте: и, о, проверьте первую строку документа также для строки с только нежелательной строкой, поскольку это пропустит те. Как уже было сказано, возможно, есть лучший способ. ;)

1

Убедитесь, что вы сняли галочку с опции .matches newline .

1

Чтобы найти несколько строк в одной строке, вы можете использовать ^.\*(string).\*(string).*$

1

Итак, я хотел удалить всю строку, если она содержала одно из трех слов: LAB, RAD, TRAN. Так что я сделал "найти и заменить" в Notepad++, где я сопоставляю всю строку, если она содержит одно из этих слов. Кроме того, хотя он у меня совпадает с новой строкой (\n) и символами возврата каретки (\r) и заменил все это пустым (например, ничего). Таким образом, когда он выполняет замену, он удаляет весь текст, включая скрытые символы, которые дают вам новую строку. Это сделало так, чтобы после замены не оставалось пустой строки

REGEX:

.*((LAB)|(RAD)|(TRAN)).*\r\n

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .