代码之家  ›  专栏  ›  技术社区  ›  Andreas Zita

正则表达式替换为计算?

  •  2
  • Andreas Zita  · 技术社区  · 15 年前

    例如:

    Grid\.Row\=\"{[0-9]+}\"
    

    Grid.Row="eval(int(\1) + 1)"
    
    3 回复  |  直到 15 年前
        1
  •  1
  •   Jens    15 年前

    你可以使用MatchEvaluator来实现这一点,比如

     String s = Regex.Replace("1239", @"\d", m => (Int32.Parse(m.ToString()) + 1).ToString());
    
    Output: 23410
    

    我刚注意到。。。如果你的意思是“使用VS2010查找替换功能”而不是“使用C#”,那么答案恐怕是“不”。

        2
  •  0
  •   colithium    15 年前

        3
  •  0
  •   Callum Rogers    15 年前

    不幸的是,C#和.NET不提供 eval .NET Math Expression Parser )或者写你自己的(其实很简单,看看 Shunting-yard Algorithm Postfix Notation


    编辑: 我知道你现在想把这个放在VS2010上 程序 . 除非编写自己的VS扩展,否则这是无法实现的。您可以编写一个程序来搜索和替换代码,并将代码输入其中,然后用其输出替换原始代码。