如何解决用 Notepad++ 中的 Regex 替换
我正在尝试用相同的文本和一些额外的文本替换文本部分,例如:
初始文本
<href="../doc/d5807346.pdf" class="document">3.2.1. EXAMPLE</a></div><div style="clear:both;"></div>
之后
<href="../doc/d5807346.pdf" class="document" download="3.2.1. EXAMPLE">3.2.1. EXAMPLE</a></div><div style="clear:both;"></div>
我在 Notepad++ 中使用以下正则表达式:
- 查找:((?).*?(?=
- 替换为:download="\1">\1
最终结果不是我所期望的,注意 class="document" 和下载之间的 > :
<href="../doc/d5807346.pdf" class="document"> download="3.2.1. EXAMPLE">3.2.1. EXAMPLE</a></div><div style="clear:both;"></div>
我一直在想办法防止这种情况发生。
解决方法
试试这个:
- 查找:(?:class="document">)([^
- 替换(更正):class="document">download="$1">$1
在 N++ 中测试
之前:<href="../doc/d5807346.pdf" class="document">3.2.1. EXAMPLE</a></div><div style="clear:both;"></div>
之后:<href="../doc/d5807346.pdf" class="document">download="3.2.1. EXAMPLE">3.2.1. EXAMPLE</a></div><div style="clear:both;"></div>
使用“在线正则表达式测试器”进行可视化调试正则表达式很有帮助
,- Ctrl+H
- 查找内容:
(class="document")>([^<]+)
- 替换为:
$1 download="$2">$2
- 检查 环绕
- 检查 正则表达式
- 全部替换
说明:
(class="document") # group 1
> # literally >
([^<]+) # group 2,1 or more any character that is not "<"
替换:
$1 # content of group 1 + a space
download=" # literally
$2 # content of group 2
"> # literally
$2 # content f group 2
屏幕截图(之前):
屏幕截图(之后):
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。