需要帮助分解字符串

本文关键字:字符串 分解 帮助 | 更新日期: 2023-09-27 18:12:43

我试图在c#中分割字符串,使其成为我代码的逻辑。字符串是:

if ( x111 > 0 ) 
   then (( x111/ x222) >= 34 and ( x222 / x222) <= 4500) 
else ( if ( x333 equals 0) 
   then true else false)

我对其他字符串使用以下代码,它工作得很好:

string query = "if ( x111 > 0 ) then (x222 > 0 ) else true";
string result = query.Split(new string [] {"if", "then", "else" },StringSplitOptions.RemoveEmptyEntries); 
输出:

(x111> 0)
(x222> 0)
true

对于我上面的字符串,有一个问题,然后条件包含另一个嵌套的逻辑,我需要拆分它来创建一个逻辑。我可以根据 ()分割它吗?,这样我就可以存储各种表达式的结果,如if, then, else和嵌套条件。

需要帮助分解字符串

您正在尝试使用字符串操作构建解析器…这是个坏主意,可能永远也行不通。

我建议您使用ANTLR,这是一个用于创建语法和解析器/词法分析器的工具。你应该试一试。有很多语言的例子,包括c#,你可以用它作为你自己的语言解析器的开始。