java为表达式字符串设置优先级
我有下面的表达式,我想为Java中的每个条件设置括号“()”。我想转换下面的表达式
String expression = "((firstname = john AND Lastname = Eleven) OR (salary = 15000 AND location = Mexico OR (firstname = mathew AND lastname = Thirteen)))";
作为
String expression = "(((firstname = john) AND (Lastname = Eleven)) OR ((salary = 15000) AND (location = Mexico) OR ((firstname = mathew) AND (lastname = Thirteen))))";
有没有最好的方法来实现这一点
# 1 楼答案
如果想要实现的是添加括号,那么可以创建一个正则表达式来匹配
text[space]=[space]text
,然后使用String#replaceAll()
方法将其包装在括号中。可以使用以下正则表达式实现匹配:(\w+ = \w+)
如果您不需要匹配
=
符号,而是需要匹配其他运算符,则可以增强正则表达式以包括>
、<
、>=
、<=
、!=
(\w+ (=|>|<|>=|<=|!=) \w+)
或任何其他你想要的