正则表达式快速更新代码

时间:2011-03-08 21:35:03

标签: regex visual-studio

我们有一些代码正在尝试替换以解决本地化问题。基本上我需要替换看起来像这样的代码:

var x = Convert.ToDouble("5");

用这个:

var x = Convert.ToDouble("5",CultureInfo.InvariantCulture);

我认为可能有一个RegEx表达式可以帮助我在Visual Studio中进行查找和替换搜索。有什么想法吗?

1 个答案:

答案 0 :(得分:4)

编写一个能正确解析C#代码的正则表达式很困难(不可能?)。您可以尝试这样做,但它不会在每种情况下都有效,例如当表达式包含嵌套括号时:

  • 找到:{Convert.ToDouble\([^,]+}\)
  • 替换为:\1, CultureInfo.InvariantCulture)

稍微不同的方法是让编译器为您解析代码,暂时将此类添加到项目中:

namespace System
{
    static class Convert
    {
        [Obsolete]
        public static double ToDouble(object o)
        {
             throw new NotImplementedException();
        }

        public static double ToDouble(object o, CultureInfo ci)
        {
            throw new NotImplementedException();
        }
    }
}

然后,您可以修复有关使用过时方法的警告,最后删除临时类。