我正在尝试找出与查询参数中的以下条件匹配的正则表达式。我需要查找文本是否在查询参数中传递了and
or运算符。or
我可以有一个像http:$URL/$RESOURCE?$filter="firstName eq 'John' and tenantId eq '32323232'"&$order="asc.
文本 1:firstName eq 'John' and tenantId eq '32323232'
文本 2:firstName like 'J%' or companyName eq 'IBM'
文本 3:companyName like 'John and Sons'
虽然以下正则表达式模式确实适用于文本 1 和文本 2,但是我需要一种过滤掉文本 3 的方法,因为 and here 位于一个值中。值应始终在引号中,因此引号中的任何and
或or
值都应由正则表达式输入。任何有助于过滤掉文本 3 等案例的帮助都将不胜感激。谢谢
public static boolean hasANDorORoperator(String filter) {
return filter.matches("^(.*?)\\s+(?i)(or|and)\\s+(.*?)$");
}