Regex 表达式解析器正则表达式

Regex 表达式解析器正则表达式,regex,regex-lookarounds,regex-group,Regex,Regex Lookarounds,Regex Group,我有多种表达方式,比如 c1|<|5&&c2|>=|750&&c3|=|1 c1|<|5&&(c2|>=|750||c3|=|1) c1|<|5&&(c2|>=|750||c3|=|1)&&c4|=|1 c1|<|5&&c2|>=|750||c3|=|1&&c4|=|1 (c1|<|5||c2|>=|750||c3|=|1)&

我有多种表达方式,比如

c1|<|5&&c2|>=|750&&c3|=|1
c1|<|5&&(c2|>=|750||c3|=|1)
c1|<|5&&(c2|>=|750||c3|=|1)&&c4|=|1
c1|<|5&&c2|>=|750||c3|=|1&&c4|=|1
(c1|<|5||c2|>=|750||c3|=|1)&&c4|=|1
c1=750&&c3=1
c1 |=| 750 | | c3 |=| 1)
c1 |=| 750 | | c3 |=| 1)和&c4 |=| 1
c1 |=750 | c3 |=1和c4 |=1
(c1 |=| 750 | | c3 |=| 1)和&c4 |=| 1)
是否有任何方法可以让正则表达式在每个运算符&&和| |之前获得条件,如:

c1 |=| 750和c3 |=| 1->(c1 |=| 750)和&(c3 |=| 1)

c1 |=| 750 | | c3 |=| 1)->(c1 |=| 750)| |(c3 |=| 1))

c1 |=| 750 | c3 |=| 1)和&c4 |=| 1->(c1 |=| 750)|| (c3 |=| 1)和&(c4 |=| 1)


所以理想情况下,我们应该在前两种情况下得到3个条件,在最后一种情况下得到4个条件。任何帮助都会非常有用。

不清楚您想要什么,但此sed命令将示例输入转换为示例输出:

sed -e 's/\&\&\|||/) & (/g;s/.*/(&)/'

如果您想要解析表达式(例如,您的几个示例包括嵌套的括号,这可能表示优先级),那么您不应该使用正则表达式引擎。处理这种类型的输入很容易实现。

不清楚您想要什么,但此sed命令将示例输入转换为示例输出:

sed -e 's/\&\&\|||/) & (/g;s/.*/(&)/'

如果您想要解析表达式(例如,您的几个示例包括嵌套的括号,这可能表示优先级),那么您不应该使用正则表达式引擎。处理这种类型的输入很简单。

到目前为止你尝试了什么?@Matt.G我尝试了以下表达式[0-9]\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\&&&(\\\\\\)但它为(c1\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\&&c4 |=| 1但我想保留运算符并删除括号中的空格。@nissimabehcera此表达式引发了一些异常,不能作为异常运行。您使用什么语言?@nissimabehcera regexr.com/49ae3您迄今为止尝试了什么?@Matt.G我尝试了以下表达式[0-9]\\\\\[a-z]\\\\[a-z]\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\[,c1 |=| 750,c3 |=| 1,c4 |=| 1]用于(c1 |=| 750 | | c3 |=| 1)&&c4 |=| 1但我想保留运算符并删除括号。@nissimabehcera此表达式引发了一些异常,不能作为异常运行。您使用什么语言?@nissimabehcera regexr.com/49ae3基本上我要找的是给定一个如上所述的表达式。我必须将给定的表达式转换为某种java模型d然后计算表达式并得到布尔结果。基本上,我要找的是一个类似于上面的表达式,我必须将给定的表达式转换成一些java模型,然后计算表达式并得到布尔结果。