正则表达式替换 - 根据匹配字符串c#形成替换字符串

时间:2018-06-04 20:31:40

标签: c# regex

我想预先替换替换:

declare @whatever int;

declare @whatever int = 42;

我可以将所需的字符串部分与...匹配

@"(declare)(\s+)" + myVar + @"(\s+)(\w+)(\s*)(;)"

但我不确定是否有好的替代品。

2 个答案:

答案 0 :(得分:0)

您可以使用Regex replacement匹配您的模式,并将其替换为所需的文字。我建议利用这个群体。

示例正则表达式:"declare\s[@]\w+\s\w+(?<value>\s=\s.+)?;"

您现在可以替换正则表达式组&#34;值&#34;用&#34; = 42&#34;。

不幸的是,这个群体在你的情况下不存在,所以你必须插入它。您可以通过对周围文本进行分组和匹配来替换该文本。这些只是一些帮助你的想法。

这些参考资料也有帮助:

答案 1 :(得分:0)

检查一下:

string input =
@"declare p1 int;
declare p2 int;";
string result = Regex.Replace(input, @"declare\s+\w+\s+int\s*", "$0=33");
//result:
//declare p1 int=33;
//declare p2 int=33;
相关问题