如何在Notepad++中删除指定XML标签行后的所有内容?
通用正则实现删除目标行后的所有内容
方案1:保留目标行及之前内容(替换法)
使用以下正则表达式进行查找替换:
- 查找:
(?s)^(.*<App_Data App="MOD" Name="DestAreas" Value="-1"/>.*?\R).* - 替换为:
$1
正则说明:
(?s):开启单行模式,让.能匹配换行符,支持跨多行匹配整个文本^(.*<App_Data ... Value="-1"/>.*?\R):捕获从文本开头到目标行(含该行换行)的所有内容,.*?是非贪婪匹配,确保精准停在目标行的换行处.*:匹配目标行之后的所有内容- 替换为
$1只保留捕获的前半部分,直接删掉后面的内容
方案2:直接匹配并删除目标行后内容
使用以下正则查找目标行之后的所有内容,直接替换为空即可:
- 查找:
(?s)(?<=<App_Data App="MOD" Name="DestAreas" Value="-1"/>.*?\R).*
正则说明:
(?<=...):正向肯定预查,确保匹配内容在目标行(含换行)之后.*:匹配目标行之后的所有内容,替换为空就完成删除
注意事项
- 确保正则引擎支持单行模式(
(?s)),常见的文本编辑器(Notepad++、VS Code)、正则工具都支持 - 如果目标行末尾没有换行,把正则里的
\R去掉即可:- 方案1修改为:
(?s)^(.*<App_Data App="MOD" Name="DestAreas" Value="-1"/>).* - 方案2修改为:
(?s)(?<=<App_Data App="MOD" Name="DestAreas" Value="-1"/>).*
- 方案1修改为:
内容的提问来源于stack exchange,提问作者Erick Octavio Gonzalez Aceves
相关产品推荐
相关产品推荐

