查找并用通配符替换 notepad++

查找并用通配符替换 notepad++

我已阅读了大约 15 篇有关正则表达式的教程,但我显然没有理解,因为我无法根据我的问题进行调整。

我有一组代码,可以在许多不同的文档中找到。这两个锚标记之间可能存在具有不同内容的变体,但这里只有一个变体(其他的都是类似形式)。

[anchor=ad1][img]http://i.imgur.com/48rwaraw.png[/img] 
                                 [URL=http://goo.gl/Ii3WNz][img]http://i.imgur.com/rBbf7nM.png[/img][/URL]
                                                 [size=7pt]Advertised sites are not endorsed and may be unsafe, untrustworthy, or illegal in your jurisdiction. [url=http://goo.gl/aw52j52]Advertise here.[/url][/size]
[img]http://i.imgur.com/48rwaraw.png[/img][anchor=ad1end]

我希望能够替换锚标记之间的所有内容,即我的 * 在此处:

[anchor=ad1]*[anchor=ad1end]

如果这会产生影响,则替换将包含与原始字符相似的字符。我似乎无法使用正则表达式来找到正确的字符串,更不用说用另一个字符串替换它了。谢谢您的帮助。

编辑:使用 ToolBucket 使用多行

答案1

查找并替换标签之间的多行文本字符串

解决方案 #1

Find what在: \[anchor=ad1\](.*?)\[anchor=ad1end\]
Replace with:和[anchor=ad1]replace[anchor=ad1end]
select中使用以下正则表达式Regular expression[x] . matches newline

Notepad++ 查找和替换正则表达式示例

测试样本数据:

[anchor=ad1]some multiline string of text
   that should be replaced[anchor=ad1end]
[anchor=ad1][img]http://i.imgur.com/some_image.png[/img]
   another one multiline string of text
   that should be replaced[anchor=ad1end]
...

解决方案 #2

更高级的解决方案。这需要 Notepad++ v6.0 或更高版本。

查找内容:(?<=\[anchor=ad1\]).*?(?=\[anchor=ad1end\])
替换为:replace
选择Regular expression[x] . matches newline
重要的提示Replace按钮在 Notepad++ v6.1.6 中不起作用,但是Replace All工作正常。

在此处输入图片描述

答案2

您可以在搜索查询中包含开始和结束标签。然后使用 RegEx 捕获中间的所有内容.*

[anchor=ad1].*[anchor=ad1end]

关键是确保选中“。匹配换行符”。请参见下面的屏幕截图。

显示正则表达式的 Notepad++ 的屏幕截图

相关内容