在 Notepad++ 中替换为正则表达式
Replace with Regex in Notepad++
我正在尝试用相同的文本和一些额外的内容替换文本部分,例如:
初始文本
<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++ 中使用以下正则表达式:
- 查找:((?<=class="文档">).*?(?=<))
- 替换为: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="文档">)([^<]*)
- 替换(更正):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")>([^<]+)
- 替换为:
download="">
- 检查 环绕
- 检查 正则表达式
- 全部替换
解释:
(class="document") # group 1
> # literally >
([^<]+) # group 2, 1 or more any character that is not "<"
替换:
# content of group 1 + a space
download=" # literally
# content of group 2
"> # literally
# content f group 2
屏幕截图(之前):
截图(之后):
我正在尝试用相同的文本和一些额外的内容替换文本部分,例如:
初始文本
<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++ 中使用以下正则表达式:
- 查找:((?<=class="文档">).*?(?=<))
- 替换为: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="文档">)([^<]*)
- 替换(更正):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")>([^<]+)
- 替换为:
download="">
- 检查 环绕
- 检查 正则表达式
- 全部替换
解释:
(class="document") # group 1
> # literally >
([^<]+) # group 2, 1 or more any character that is not "<"
替换:
# content of group 1 + a space
download=" # literally
# content of group 2
"> # literally
# content f group 2
屏幕截图(之前):
截图(之后):