Notepad++:匹配上一行指定字符串时如何修改下一行内容?
用Notepad++批量移除指定XML标签下的@college.edu内容
操作步骤:
- 打开Notepad++的替换对话框(快捷键
Ctrl+H) - 在「查找模式」里选择「正则表达式」,并勾选「. 匹配换行符」选项
- 在「查找内容」框中输入正则:
(OTHER_ID_1<\/id_type>.*?<value>)(.*?)@college.edu(<\/value>) - 在「替换为」框中输入:
$1$2$3 - 点击「全部替换」即可完成批量修改
正则说明:
- 第一组
(OTHER_ID_1<\/id_type>.*?<value>):精准匹配包含OTHER_ID_1的<id_type>标签,以及后续到<value>标签的所有内容(跨行也能匹配) - 第二组
(.*?):捕获<value>标签里@college.edu之前的文本(比如示例中的joeblow) - 第三组
(<\/value>):捕获</value>结束标签
替换时通过引用这三个分组,直接去掉了中间的@college.edu,同时保留其他位置的该内容不受影响。
效果示例:
原内容:
<id_type>OTHER_ID_1</id_type> <value>joeblow@college.edu</value>
替换后:
<id_type>OTHER_ID_1</id_type> <value>joeblow</value>
内容的提问来源于stack exchange,提问作者T. Gore
相关产品推荐
相关产品推荐

