有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java正则表达式重写日期表达式

我有一个带有日期的字符串,上面有“or”操作符。我想用“中间”操作符重写它。 输入:

 WHERE   table.it='2013-03-06-23'  OR  table.it='2013-03-07-00'  OR   table.it='2013-03-07-01'   OR   table.it='2013-03-07-02'   OR   table.it='2013-03-07-03'   OR   table.it='2013-03-07-04'   OR   table.it='2013-03-07-05'   OR   table.it='2013-03-07-06'  and table.name = 'test'

输出:

 WHERE   table.it between '2013-03-06-23' and '2013-03-07-06' and table.name = 'test'

我想用一个between操作符重写第一个和最后一个日期。 请告诉我如何用java实现它

多谢各位


共 (1) 个答案

  1. # 1 楼答案

    希望这有助于:

    String s = "WHERE   table.it='2013-03-06-23'  OR  table.it='2013-03-07-00'  OR   table.it='2013-03-07-01'   OR   table.it='2013-03-07-02'   OR   table.it='2013-03-07-03'   OR   table.it='2013-03-07-04'   OR   table.it='2013-03-07-05'   OR   table.it='2013-03-07-06'  and table.name = 'test'";
    Pattern p = Pattern.compile("(\\d{4}-\\d{2}-\\d{2}-\\d{2})");
    Matcher m = p.matcher(s);
    m.find();
    String first = m.group(1);
    String last="";  
    while(m.find()){
      last = m.group(1);
    }
    s = "WHERE table.it between "+first+" and "+last+" table.name = 'test'";