在 Notepad++ 中查找和替换 ^ 和 ~ 之间的文本

Spl*_*dor 22 notepad++ regex

我有一个大文本文件,我想在其中删除 ^ 符号和 ~ 符号之间的所有文本。这也需要跨线工作。

我尝试^*~在“查找”框中使用“查找”和“替换”进行常规的“查找”和“替换”,而“替换”框中没有任何内容,但发现结果为 0。

Den*_*nis 23

这对于常规的Find and Replace是不可能的。如果您使用 Notepad++ 6,则可以利用支持PCRE)的新正则表达式引擎。

Ctrl+H打开查找和替换对话框并执行以下操作:

Find what:          \^.*?~
Replace with:       
Wrap around:        checked
Regular expression: selected
. matches newline:  checked
Run Code Online (Sandbox Code Playgroud)

现在按Alt+A替换所有出现的内容。

Find what中的正则表达式组成如下:

  • \^是文字^
  • .*? 是允许正则表达式匹配的最少字符数。
  • ~是字面意思~

  • 如果您将 .*?~ 更改为 [^~]*~ 那么它应该可以在不需要/使用 PCRE 的情况下工作。 (3认同)

Der*_*ler 8

你会想要搜索\^.*?~并确保. 匹配换行已启用:

在此处输入图片说明

这是因为^有一个特殊的含义,它匹配一行的开头。因此,我们需要用反斜杠来转义它\^

写作^*将匹配“一行中任意数量的行首”。.*匹配“任何字符”,但默认情况下它不匹配换行符。

  • 小心正则表达式的贪婪行为。如果有多个 `~` 字符(或多个匹配),这将匹配第一个 `^` 到最后一个 `~`。 (2认同)