Duplicate line and replace string with Regular Expression

huangapple go评论65阅读模式
英文:

Duplicate line and replace string with Regular Expression

问题

Sure, here's the translated part:

我有一个包含多个项目的XML文件。

每个项目包含如下一行:

<path>./filename.zip</path>


对于每个项目,我需要在下面再添加一行,如下所示:

<manual><./media/manuals/filename.pdf></manual>


所以我需要复制每个 \&lt;path\&gt; 行并替换为 \&lt;manual\&gt;。
filename 是 Windows

最终结果应该如下:

<path>./filename.zip</path>
<manual><./media/manuals/filename.pdf></manual>


我应该能够在Notepad++中使用正则表达式来完成这个任务。有什么建议吗?

提前感谢。
英文:

I have an XML file that contains several items.

Each item contains a line like this:

&lt;path&gt;./filename.zip&lt;/path&gt;

For each item I need to add another line below like this:

&lt;manual&gt;&lt;./media/manuals/filename.pdf&gt;&lt;/manual&gt;

So I need to duplicate each &lt;path&gt; line and replace with &lt;manual&gt;.
filename is windows

The final result would be like this:

&lt;path&gt;./filename.zip&lt;/path&gt;
&lt;manual&gt;&lt;./media/manuals/filename.pdf&gt;&lt;/manual&gt;

I should be able to do this using regular expressions in notepad++. Any ideas?

Thanks in advance.

答案1

得分: 2

尝试这个:

查找:&lt;path&gt;\.(.*?)\.\w+&lt;/path&gt;
替换:\0\r\n&lt;manual&gt;./media/manuals/\1.pdf&lt;/manual&gt;

fyi 第零组是整个匹配。

英文:

Try this:

Find: &lt;path&gt;\.(.*?)\.\w+&lt;/path&gt;
Replace: \0\r\n&lt;manual&gt;./media/manuals/\1.pdf&lt;/manual&gt;

fyi group zero is the whole match.

答案2

得分: 0

已解决:

查找:(&lt;path&gt;)(\.{0,2}\/)(.*?)(\.zip&lt;\/path&gt;)

替换:\1\2\3.zip&lt;\/path&gt;\r\n &lt;manual&gt;.\/media\/manuals\/\3.pdf&lt;\/manual&gt;

英文:

Solved:

find: (&lt;path&gt;)(\.{0,2}\/)(.*?)(\.zip&lt;\/path&gt;)

replace: \1\2\3.zip&lt;\/path&gt;\r\n &lt;manual&gt;.\/media\/manuals\/\3.pdf&lt;\/manual&gt;

huangapple
  • 本文由 发表于 2023年7月18日 06:37:15
  • 转载请务必保留本文链接:https://go.coder-hub.com/76708494.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定