我正在尝试为数学运算解析一行代码。
如: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, @"(?<=[-+*/])");
答案 0 :(得分:4)
根据我的评论,如果您打算使用它来评估数学表达式,则不应使用正则表达式,因为您无法对要解析的字符串进行任何语法或语义理解。
如果您不打算这样做,这应该可以正常使用
([\d\.]+|[()e^/%x*+-])
答案 1 :(得分:-1)
好吧,我猜这个问题可以通过以下正则表达式来解决。
{{1}}