我正在使用解析器,并使用
等表达式(-4 + 5)-2
( -4 + 5 ) - 2
( -4 + 5 )-2
-4 + 5-2
-4 + 5 - 2
我希望能够
-4
匹配为负数-4
-2
作为运营商-
和号码2
所以在上面的表达式中,我希望能够将前三个分成[(
,-4
,+
,5
,)
,-
,2
],最后两个进入[-4
,+
,5
,-
,2
] < / p>
我尝试使用noncapture groups但是,他们没有给我很多帮助。我知道我必须认识到,如果-2
这样的表达式后面有一个右括号,则将其作为运算符和数字。
答案 0 :(得分:0)
Regexps适合与regular languages合作。常规语言不受上下文限制。您的表达式不是上下文。 (例如,因为如果-
被解释为运算符或符号,它取决于上下文。)因此,它们不会形成常规语言,因此您无法使用正则表达式解析它们。