我正在处理一个解析器,并且在一个表达式中,例如
(-4 + 5)-2
( -4 + 5 ) - 2
( -4 + 5 )-2
-4 + 5-2
-4 + 5 - 2我想能
-4匹配为负数-4-2作为运算符-和数字2因此,在上述表达式中,我希望能够将前三个表达式分为(、-4、+、5、)、-、2,最后两个表达式分为-4、+、5、-、d23。
我试过使用非俘获群,但是他们对我没有多大帮助。我知道,我必须认识到,如果在表达式(如-2 )后面有一个结束括号,则必须将其作为运算符和数字。
发布于 2015-03-16 13:45:40
雷吉普很适合使用正规语言。普通语言是不受上下文限制的。你的表达方式不是上下文无关的。(例如,如果将-解释为运算符或符号,则取决于上下文。)因此,它们不能形成规则语言,因此不能用正则表达式来解析它们。
https://stackoverflow.com/questions/21291056
复制相似问题