解析字符串C#(可能使用正则表达式)

时间:2018-03-31 23:42:30

标签: c# regex string parsing

我正在尝试为数学运算解析一行代码。

如:4 + 18 /(9-3)

我想要的部分是:4,+,18,/,(,9, - ,3和)。 所以基本上,所有数字,运算符和括号。

如果我使用split with delimiters,它会在找到分隔符时删除分隔符。因此,如果我使用我的运算符作为分隔符,那么它们就会被删除。

我尝试使用Regex.split,它包含了运算符,但不是我想要的。它产生4+的结果,因为它包括4和加号。

以下是我一直在尝试的内容:

        string convert = "4+8/(9-3)";

        string[] parts = Regex.Split(convert, @"(?<=[-+*/])");

2 个答案:

答案 0 :(得分:4)

根据我的评论,如果您打算使用它来评估数学表达式,则不应使用正则表达式,因为您无法对要解析的字符串进行任何语法或语义理解。

如果您不打算这样做,这应该可以正常使用

([\d\.]+|[()e^/%x*+-])

Regexr example

Dotnetfiddle example

答案 1 :(得分:-1)

好吧,我猜这个问题可以通过以下正则表达式来解决。

{{1}}