我正试图解析一行数学运算的代码。
例如: 4+18/(9-3)
我希望这些部分是: 4,+,18,/,(,9,-,3,和)。基本上,所有的数字,运算符和括号。
如果使用带分隔符的分隔符,则在找到分隔符时,它将移除分隔符。所以如果我用我的操作符作为分隔符,那么它们就被移除了。
我试着使用Regex.split,它包括了操作符,但不是我想要的。它产生类似于4+的结果,因为它包括4和加号。
以下是我一直在尝试的:
string convert = "4+8/(9-3)";
string[] parts = Regex.Split(convert, @"(?<=[-+*/])");
发布于 2018-04-01 00:04:49
根据我的评论,如果您打算使用它来计算一个数学表达式,就不应该使用Regex,因为您不能对正在解析的字符串有任何语法或语义理解。
如果你不打算这么做的话,这应该会很好
([\d\.]+|[()e^/%x*+-])
发布于 2018-03-31 23:48:26
嗯,我想这个问题可以用下面的正则表达式来解决。
[-+*/\(\)]|\d+
https://stackoverflow.com/questions/49593497
复制相似问题