Notepad++:当上一行找到第一个字符串时,如何替换下一行中的字符串?

问题描述 投票:0回答:1

我正在使用 Notepad++ 编辑 XML 文件,并且试图弄清楚如何对文件中的多个记录进行编辑。问题是,当我在当前行中找到不同的字符串时,我想从下一行中删除特定的字符串。这是一个例子:

<id_type>OTHER_ID_1</id_type>
<value>[email protected]</value>

我想做的是每当我找到

@college.edu
时从下一行中删除
OTHER_ID_1
。我无法对
@college.edu
进行一揽子查找/替换,因为文件中还有其他 XML 标签需要该信息。

我发现了很多代码似乎让我很接近,但我似乎能做的就是选择它。我还看到了一些示例,这些示例展示了如何捕获“查找内容:”框中的输出,但我似乎无法使其与我找到的先前示例一起使用。

这是我当前的查找代码:

(?s)(?<=OTHER_ID_1</id_type>)(.+?)(?=</value>)

下一步是什么?如何从该选择中删除

@college.edu

xml notepad++
1个回答
0
投票

一个简单的方法是。搜索

<id_type>OTHER_ID_1<\/id_type>[^<]+<value>([a-zA-Z0-9.+]*)@college.edu<\/value>

替换为

<id_type>OTHER_ID_1</id_type>\n<value>$1</value>

重要提示:勾选正则表达式搜索“.”时也匹配换行符和回车符的复选框

注意:电子邮件地址名称部分的正则表达式非常简单:-)

© www.soinside.com 2019 - 2024. All rights reserved.