首页 > 解决方案 > 如何使用正则表达式和记事本 ++ 中的替换对话框复制和粘贴选定的文本?

问题描述

直入问题;我在这里要做的就是复制一行并使用正则表达式在末尾添加一个括号,并通过记事本++中的替换为对话框自动化该过程。

我的问题形象化:

在下面的表示中,我有一堆“[“Mesh”]”实例,它们都分配了不同的路径值。我想要做的就是复制它的路径条目并在复制的逗号之前的末尾添加括号。

我现在拥有的:

...

["Mesh"] = Platform(
     "models/ships/japan/Zuikaku.mmod",

...

我想要达到的目标:

...

["Mesh"] = Platform(
     "models/ships/japan/Zuikaku.mmod",
     "models/ships/japan/Zuikaku.mmod"),

...

无需太具体,因为在我正在修改的文件中大约有 500 个这样的实例,我不想在简单地单击 CTRL + D 复制每一行并添加括号时遍历每个实例,因为这将花费文字时间去做。

我对以前使用的正则表达式的经验有限,但非常有限。我知道我可以使用“。*”在“搜索”对话框中选择整行,但就我所知。

提前感谢您的宝贵时间!

标签: regexnotepad++

解决方案


您应该能够使用此正则表达式(禁用. matches newline)。我正在使用(\R+)捕获行尾字符(并在输出中重现它们),以便它可以在使用换行符以外的系统来结束行。

(\["Mesh"\]\s*=\s*.*(\R+))(.*),$

用。。。来代替

$1$3,$2$3\),

对于输入

...

["Mesh"] = Platform(
     "models/ships/japan/Zuikaku.mmod",

...

这给

...

["Mesh"] = Platform(
     "models/ships/japan/Zuikaku.mmod",
     "models/ships/japan/Zuikaku.mmod"),

...

推荐阅读