使用正则表达式查找替换以保留括号中的内容

Find replace using regular expression to keep what is in brackets

鉴于我有 1000 的...

LegacyProject.LegacyNameSpace.LegacyClass.LegacyMethod("blah");

...

LegacyProject.LegacyNameSpace.LegacyClass.LegacyMethod("foo");

...

LegacyProject.LegacyNameSpace.LegacyClass.LegacyMethod("and so on...");

有没有办法可以通过正则表达式找到并替换它们?为了保留字符串参数得到下面的例子...

NewMethod(LegacyProject.LegacyNameSpace.LegacyClass.LegacyMethod("blah"));
NewMethod(LegacyProject.LegacyNameSpace.LegacyClass.LegacyMethod("foo"));
NewMethod(LegacyProject.LegacyNameSpace.LegacyClass.LegacyMethod("and so on"));

我无法更改原始方法,因为不幸的是它被抽象掉了并且总是位于视图 (.cshtml) 文件中。

编辑:对于认为这需要更多关注的小丑...将示例字符串 1 转换为示例字符串 2 的正则表达式是我所追求的。我对这里的学究感到绝望...

谢谢

如果您首先且仅使用以下正则表达式,则可以使用捕获组 $1 或 \1 取决于正则表达式的风格。

^LegacyProject.LegacyNameSpace.LegacyClass.LegacyMethod\("(.*)"\);$

我们将编写伪代码

link = replace(
           '^LegacyProject.LegacyNameSpace.LegacyClass.LegacyMethod\("(.*)"\);$',
           'NewMethod(LegacyProject.LegacyNameSpace.LegacyClass.LegacyMethod(""));',
            link
            )

根据您使用的正则表达式的风格进行修改。