如何删除没有“.”的行 在记事本++中?

Che*_* Yu 12 notepad++ find-and-replace

在记事本++中,我有很多行的格式:

abc.xyz
Run Code Online (Sandbox Code Playgroud)

其中“abc”可能有空格或 - 或数字。

如何删除没有“.”的行?因此,如果一行没有任何“.”,我希望将其完全删除,甚至不留空行。

Dav*_*ill 39

如何删除没有的行.

  • 菜单“搜索”>“替换”(或Ctrl+ H

  • 将“查找内容”设置为 ^[^\.]*\r\n

    • 您可以\r\n根据文件中的 EOL替换为不同的 EOL(行尾)正则表达式(请参阅“我的文件中有不同的 EOL,我该怎么办?”和“我不在乎我的文件使用什么 EOL” ,我能做什么?”下面)。
  • 清除“替换为”

  • 启用“正则表达式”

  • 点击“全部替换”

    图片

笔记:

  • 以上假设文件中的最后一行具有尾随 EOL。

  • 以上还假设您正在编辑带有 Windows EOL 的文本文件,\r\n.

之前

abc.xyz
abcdef
abc 123.xyz
abc 123def
Run Code Online (Sandbox Code Playgroud)

之后

abc.xyz
abc 123.xyz
Run Code Online (Sandbox Code Playgroud)

我的文件中有不同的 EOL,我该怎么办?

  • Windows EOL 是\r\n.

  • 如果您使用具有不同 EOL 的文件,您可以使用菜单“编辑”>“EOL 转换”将它们转换为 Windows EOL。

  • 如果您不使用 Windows EOL,并且您不想转换它们,请改用以下内容:

    • 使用\n,而不是\r\n用于Unix / OS X EOLS

    • 用于\r代替\r\nMac OS(最高版本 9)EOL


我不知道或不关心我的文件使用什么 EOL,我该怎么办?

  • 您可以使用\Ror(?:\r\n?|\n)(?:\r?\n?)代替\r\n。这解决了文件中实际使用的 EOL 的任何问题。

  • 您也可以使用(?:\r?\n?|$). 如果文件的最后一行中没有 EOL,则此表达式将起作用。


进一步阅读

  • 您可以使用 \R 来匹配任何换行符。 (5认同)

Zik*_*ato 14

接受的答案是正确的,但您不会总是准备好正则表达式。所以我提出了一个更简单的解决方案。

  1. Ctrl+ F– 单击选项卡标记
  2. 将“查找内容”设置为 .
  3. 选中“书签线”选项(由 Wrass 提供)
  4. 搜索模式 = 正常
  5. 单击全部标记 -> 您应该会在书签行号旁边看到一个蓝色圆圈。
  6. 然后导航到菜单搜索 -> 书签 -> 删除未标记的行。