美文网首页
RSQL兼容空值问题

RSQL兼容空值问题

作者: 大继 | 来源:发表于2020-09-09 12:36 被阅读0次

前言

由于居人篱下,前端不愿意兼容空值问题,终于要解决这个问题了,问题如下:

String rsql = "(name== or productItems.internationalBarCode== or productItems.internationalBarCode==) and status== and categories.id== and status!=DELETE";
//形态2
String rsql2 = "(name==,productItems.internationalBarCode==,productItems.internationalBarCode==);status==;categories.id==;status!=DELETE";

在这条rsql()里面只有一个status是带了值的。其它都需要清除。
那么正则是跑不掉了。

解决

1.思路

==后面为结束或带有操作符合判断为空值字段,删除改字段到开始或连同前面的操作符号

2.代码

/**
     * 思路 ==后面为结束或带有操作符合判断为空值字段,删除改字段到开始或连同前面的操作符号
     */
    private static Pattern emptyValuePattern =  Pattern.compile("((;|,|\\(){0,1}[A-Za-z0-9.]{0,}(==|!=|<|>){1,1}" +
            "(;|,| and | or |\\)|$){1})");


    /**
     * 尾部操作符合清除
     */
    private static Pattern headTailOperationPattern = Pattern.compile("^(;|,| and | or )|(;|,| and | or )$");


/**
     * 清除空值字段
     */
    public static String emptyValueClean(String rsql){
        Matcher matcher = emptyValuePattern.matcher(rsql);
        while (matcher.find()){
            String dateTimeStr = matcher.group();
            dateTimeStr = dateTimeStr.replace("(","");
            dateTimeStr = dateTimeStr.replace(")","");
            System.out.println(dateTimeStr);
            rsql = rsql.replace(dateTimeStr,"");
        }
        //清除空括号
        rsql = rsql.replace("()","");
        //清除头尾操作符合
        Matcher uselessOperatorMatcher = headTailOperationPattern.matcher(rsql);
        while (uselessOperatorMatcher.find()){
            String temp = uselessOperatorMatcher.group();
            rsql = rsql.replace(temp,"");
        }

        return rsql;
    }

相关文章

  • RSQL兼容空值问题

    前言 由于居人篱下,前端不愿意兼容空值问题,终于要解决这个问题了,问题如下: 在这条rsql()里面只有一个sta...

  • 兼容RSQL 查询DateTime 带空格无法解析问题

    问题 再使用RSQL的时候由于日期带上了空格.rsql=createTime==2020-09-09 10:08:...

  • 空值问题(NULL)

    not in中null的问题 如果使用not in, 其后的条件中不能有空值,不然结果可能出错 select 'a...

  • Python

    使用and or 返回函数结果 空值 空值是Python里一个特殊的值,用None表示 字符编码问题 https:...

  • 2017.10.09

    一,处理8个搜索的空状态 二,修复搜索框机型显示兼容问题

  • 笔记 | PHP 2012 | 4个小问题

    DOCTYPE 没有声明 影响浏览器渲染 / 显示效果; 兼容问题 属性必有值,值必加引号{ Html 5 的语法...

  • 兼容性问题

    CSS兼容性问题PC页面布局兼容JS兼容问题移动页面兼容问题 CSS兼容问题.header {_width:100...

  • 04-TypeScirpt-类型推论和兼容性

    类型推论 兼容性 类型兼容性 函数兼容性 参数个数 参数类型 返回值类型 返回值的双向协变 函数的重载 类兼容性 ...

  • 1-5空类型和智能类型转换

    空类型安全问题判断值是否为空,如果为空,则直接返回空,否则,返回相应值 null类型 声明可null类型但本身不为...

  • MongoDB表连接空值问题

    由于MongoDB的数据非结构化,在进行表连接时经常会碰到一些问题,而空值则是非常常见的。假设有两个collect...

网友评论

      本文标题:RSQL兼容空值问题

      本文链接:https://www.haomeiwen.com/subject/qzxeektx.html