当前位置: 代码迷 >> J2EE >> 求一正则表达式写法解决方案
  详细解决方案

求一正则表达式写法解决方案

热度:66   发布时间:2016-04-22 01:19:26.0
求一正则表达式写法
多个时段用“#”隔开,例:00:00-08:30#10:00-20:00

请问这个用正则表达式怎么写呀?

------解决方案--------------------
你是要合并还是要分开。。。这跟正则关系不大吧
------解决方案--------------------
原始字符串是什么样的
------解决方案--------------------
不知道有没有理解LZ的意思。

Java code
public static void main(String[] args) {        String s = "00:00-08:30";        //String s = "00:00-08:30#00:00-08:30#10:00-20:00";        Pattern p = Pattern.compile("((\\d{2}:\\d{2}-\\d{2})?:\\d{2}#?)+");        Matcher m = p.matcher(s);        if(m.matches()){            System.out.println(m.group());        }    }
------解决方案--------------------
Java code
    public static boolean checkStr(String str){        if(str == null || "".equals(str.trim()))            return false;        String[] arr = str.split("#");        for (String string : arr) {            if(!string.matches("\\d{2}:\\d{2}-\\d{2}:\\d{2}"))                return false;        }        return true;    }
------解决方案--------------------
^\d{2}:\d{2}-\d{2}:\d{2}(#\d{2}:\d{2}-\d{2}:\d{2})*$
------解决方案--------------------
为什么都在这里\d{2} 时间要么12小时制 要么24小时制

\d{2} 是不合法的。

^([01][\d]|2[0-4]):([0-5][\d]|60)[#]([01][\d]|2[0-4]):([0-5][\d]|60)$
------解决方案--------------------
^([01][\d]|2[0-4]):([0-5][\d]|60)-([01][\d]|2[0-4]):([0-5][\d]|60)[#]([01][\d]|2[0-4]):([0-5][\d]|60)-([01][\d]|2[0-4]):([0-5][\d]|60)$
  相关解决方案