簡體   English   中英

使用Notepad ++刪除與正則表達式匹配的所有行(非)

[英]Delete all lines (not) matching a regex using Notepad++

如何在Notepad ++中刪除所有匹配或不匹配正則表達式的行?

在Vim中,我會執行以下操作來刪除所有匹配的行:

:g/regex/d

並刪除所有不匹配的行:

:!g/regex/d

我在Notepad ++中尋找這些命令。

正如在“ Notepad ++ - 刪除具有特定文本的所有行 ”中所解釋的那樣,我通常會采用消隱匹配行並刪除空行的方法。 有更簡單的方法嗎?


根據這個答案 ,Notepad ++> = 6.0的版本支持正則表達式中的匹配換行符,因此允許直接刪除整行而不首先創建空行。 當替換為空字符串時,以下模式應刪除包含“foobar”的所有行:

^.*foobar.*\r\n

現在,正如“ 正則表達式匹配不包含單詞的行? ”中所討論的那樣,否定正則表達式並不是很簡單。 刪除Notepad ++中不包含“foobar”的行將需要以下模式:

^((?!foobar).)*\r\n

因為這是一個非常復雜的命令,只是為了刪除不包含單詞的行(或者可能是更復雜的表達式),我想知道是否有更簡單的解決方案。

在“ Find對話框的“ Mark選項卡上,您可以為與之匹配的行添加書簽...然后在菜單上Search > Bookmark > Remove Unmarked LinesRemove Bookmarked lines

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM