Java LHS/RHS和运算符中除法表达式的正则表达式

Java LHS/RHS和运算符中除法表达式的正则表达式,java,regex,groovy,Java,Regex,Groovy,我想用运算符对表达式进行除法。我想识别任何使用运算符的表达式,并将其分为三组:LHS、RHS和> 我正在使用下面的正则表达式 (.+)(>)(.+) 我错误地识别了这个群体 5 > ${a > 0 ? a :6 } 它检索 Group1: 5 > ${a Group2: > Group3: 0 ? a :6 } 哪个错误,它应该检索 Group1: 5 Group2: > Group3: ${a > 0 ? a :6 } 任何让它工作的建议。我可

我想用
运算符对表达式进行除法。我想识别任何使用
运算符的表达式,并将其分为三组:
LHS、RHS和>

我正在使用下面的正则表达式

(.+)(>)(.+)
我错误地识别了这个群体

5 > ${a > 0 ? a :6 }
它检索

Group1: 5 > ${a
Group2: >
Group3: 0 ? a :6 }
哪个错误它应该检索

Group1: 5
Group2: >
Group3: ${a > 0 ? a :6 }
任何让它工作的建议。我可以在正则表达式中添加一些应该忽略在
${}
中使用的
运算符的内容吗

我可以在正则表达式中添加一些应该忽略在
${}
中使用的
运算符的内容吗:

您可以使用这个在
{…}
中跳过
的正则表达式(假设没有不平衡的和转义的括号)

正则表达式详细信息:

  • (\${[^}]+}{124;[^>]+?)
    :组1:匹配
    ${…}
    格式的字符串或非
    格式的任何字符的1+
  • \h*>
    :匹配0个或多个空格,后跟一个
  • (?![^{}]*})\h*
    :负向前看,断言如果没有
    {
    }
    我们就没有
    }
    向前看
  • (.+)
    :组2:匹配剩余字符

您可能需要编写解析器,以避免正则表达式,并拆分如果我要忽略(,=,=>,=中的任何运算符,您可以检查此更新的正则表达式
(\${[^}]+}|[^>]+?)\h*>(?![^{}]*})\h*(.+)