Notepad ++ RegEx用于查找和替换注释中的内容

时间:2014-07-28 12:21:54

标签: regex replace notepad++

我需要在模式中插入一行,如果它不存在的话。 (我正在使用Notepad ++)

如果文件中的部分是正确的,则这是一个示例:

/* Name           */ Msg_OvVersion,
/* AccessRights   */ LGHQRead,
/* Masks          */ MSK_Diagnostics,
/* Feature        */ NoFeature,
/* Version        */ Version(2,0,0));

在某些文件中缺少Feature行。如果是这样,我需要插入它。错误文件的示例:

/* Name           */ Msg_OvVersion,
/* AccessRights   */ LGHQRead,
/* Masks          */ MSK_Diagnostics,
/* Version        */ Version(2,0,0));

我尝试了以下内容:

Replace: (\/\* Masks.*\,).*\/\* Version

With: \1\n/* Feature        */ NoFeature,\n/* Version

但这并没有真正起作用,它取代了整个文件..我错过了什么吗?在此先感谢!!

3 个答案:

答案 0 :(得分:1)

这应该有效:

(\/\*\s+Masks\s+\*\/[^\r\n]*\r?\n)(\/\*\s+Version\s+\*\/[^\r\n]*)

这是DEMO


在Notepad ++中

找到:

(\/\*\s+Masks\s+\*\/[^\r\n]*\r?\n)(\/\*\s+Version\s+\*\/[^\r\n]*)

替换为:

$1/* Feature        */ NoFeature,\r\n$2

答案 1 :(得分:1)

正则表达式:

(Masks[^\n]*)\n\/\*\s*Version

替换字符串:

\1\n/* Feature        */ NoFeature,\n/* Version

DEMO

答案 2 :(得分:0)

您需要捕获 Masks 和&然后在版本之间插入:

Find:     (\*\s*Masks.*)(\r\n/\*\s*Version.*)
Replace:  \1\r\n/* Feature        */ NoFeature,\2

(确保“ 匹配换行符”已关闭)