Notepad++ 查找和替换表达式帮助

Notepad++ 查找和替换表达式帮助

我想找到两个字符之间的所有内容,比如AB

Asd;lfksjd;fsdfjs;ldfkB这将是sd;lfksjd;fsdfjs;ldfk

并替换它们。我该如何写这个表达式?

答案1

您可以使用以下正则表达式匹配 A 和 B 之间的任意字符:

(?<=A).*(?=B)

这不会返回 A 或 B 作为匹配字符的一部分。

  • (?<=A)意味着 A 位于主表达式之前,并且如果它匹配,则您不希望它包含在主结果中。

  • .*表示匹配出现 0 次或更多次的任何字符。如果您希望 A 和 B 之间至少有一个字符,则可以使用 .+。

  • (?=B)意味着 B 位于主表达式之后,并且如果它匹配,则您不希望它包含在主结果中。

编辑:

Notepad++ 不支持向前/向后追溯,因此你可以替换

(A).*(B)

\1\2

反而。

请注意,这是贪婪的,因此如果有“AxB y AzB”,您将获得“AB”。要获取“AB y AB”,请使用

(A).*?(B)

反而。

*编辑非贪婪,.?*不正确

答案2

我对正则表达式很陌生,所以希望这对你有用。

我认为A.*B是要搜索的正则表达式。也就是说,搜索 A 和 B 之间是否有零个或多个东西。

此正则表达式在匹配中包含 A 和 B,因此您必须使用替换将它们添加回来。

替代B将是用来替换它的文本。

在此处输入图片描述

相关内容