我想预先替换替换:
declare @whatever int;
与
declare @whatever int = 42;
我可以将所需的字符串部分与...匹配
@"(declare)(\s+)" + myVar + @"(\s+)(\w+)(\s*)(;)"
但我不确定是否有好的替代品。
答案 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;