我刚开始使用正则表达式,在解析字符串时遇到了问题。我正在使用正则表达式解析一个作为字符串给定的公式。
目前我的正则表达式是:
string[] formula_substrings = Regex.Split(formula, "(\\()|(\\))|(-)|(\\+)|(\\*)|(/)|(\\s+)")当公式具有指数时,此正则表达式无法处理的测试用例之一。
示例:
Formula = "1e-2 + 5.0"我想要的输出是
["1e-2", "+", "5.0"] 但我得到了
["1e", "-", "2", "+", "5.0"].我尝试更改正则表达式,以确保减号前面的字符不是e:
string[] formula_substrings = Regex.Split(formula, "(\\()|(\\))|((^e)-)|(\\+)|(\\*)|(/)|(\\s+)")这会在表达式为
Formula = "5+5-2"它将给出以下输出:
["5", "+", "5-2"] 当我想要的输出是
["5", "+", "5", "-", "2"]提前感谢您的帮助!
发布于 2013-10-04 01:00:37
你可以使用后视..
Regex.Split(formula, @"(\(|\)|(?<!e|E)-|(?<!e|E)\+|\*|/|\s+)")
-------- --------https://stackoverflow.com/questions/19164857
复制相似问题