Ask a questionAsk a question
 

AnswerExpression Evaluator

  • Monday, April 07, 2008 2:12 AMDo Hoai Nam Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     

     

    Dear All

    I couldn't find a method to evaluate a regular expression in C#

    Ex: string exp="(3+5)/2-1";

    I hope if anyone could hep.

Answers

  • Monday, April 07, 2008 2:15 AMDavid M MortonMVP, ModeratorUsers MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     Answer
    They're in System.Text.RegularExpressions.Regex class.  Try IsMatch and Match methods.

     

  • Monday, April 07, 2008 3:17 AMinetscan Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     Answer
    Are you really looking for regular expression capabilities, or are you looking to evaluate the math expression you provided as an example to 3?  .NET doesn't provided math expression evaluation out of the box.  You will either need to look for a library online to provide that functionality or write your own.  You could try here.
  • Monday, April 07, 2008 6:55 AMtimvw Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     Answer
    An relatively cheap expression evaluator can be found in DataColumn and it's Expression property, eg:

    Code Snippet

    DataTable dt = new DataTable();
    DataRow dr = dt.Rows.Add();
    DataColumn dc = dt.Columns.Add();
    dc.Expression = "(3+5)/2-1";

    Console.WriteLine( dr[0] );


  • Monday, April 07, 2008 7:33 AMPhilippe Leybaert Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     Answer
    Check out LazyParser.NET, a full-featured lightweight C# expression parser.

     

All Replies

  • Monday, April 07, 2008 2:15 AMDavid M MortonMVP, ModeratorUsers MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     Answer
    They're in System.Text.RegularExpressions.Regex class.  Try IsMatch and Match methods.

     

  • Monday, April 07, 2008 3:17 AMinetscan Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     Answer
    Are you really looking for regular expression capabilities, or are you looking to evaluate the math expression you provided as an example to 3?  .NET doesn't provided math expression evaluation out of the box.  You will either need to look for a library online to provide that functionality or write your own.  You could try here.
  • Monday, April 07, 2008 6:55 AMtimvw Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     Answer
    An relatively cheap expression evaluator can be found in DataColumn and it's Expression property, eg:

    Code Snippet

    DataTable dt = new DataTable();
    DataRow dr = dt.Rows.Add();
    DataColumn dc = dt.Columns.Add();
    dc.Expression = "(3+5)/2-1";

    Console.WriteLine( dr[0] );


  • Monday, April 07, 2008 7:33 AMPhilippe Leybaert Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     Answer
    Check out LazyParser.NET, a full-featured lightweight C# expression parser.