在C#中对字符串进行标记,其中分隔符包含其他分隔符的某些部分

时间:2013-09-24 17:28:06

标签: c# tokenize

我想使用基于某些运算符的正则表达式来标记字符串。但有些运营商将其他运营商列为字符串。如

  

> = > ,[例如。 > =包含>]

假设我有一个字符串

  

(3> = 4)!=(3> 4)[运算符是> =,!=,>]

如何正确地标记它?

1 个答案:

答案 0 :(得分:2)

您是否有理由使用正则表达式?我会说如果你只是在它上面使用字符串拆分功能会更容易。如果您从最复杂的运算符(> =)开始,那么您不必担心以后拆分>。

编辑:添加以下示例

//Put operators in order of 'complexity'. Since >= contains > and =, comes before them
string[] operators = new string[] {">=", "!=", ">", "="};
string expression = "(3>=4)!=(3>4)";

foreach (string operator in operators)
{
    //Perform logic of creating expression tree here
}

所以基本上,在循环内部,它会打破你的表达。您需要根据您的操作顺序在此处构建表达式树。