求一正则表达式写法
多个时段用“#”隔开,例:00:00-08:30#10:00-20:00
请问这个用正则表达式怎么写呀?
[解决办法]
你是要合并还是要分开。。。这跟正则关系不大吧
[解决办法]
原始字符串是什么样的
[解决办法]
不知道有没有理解LZ的意思。
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()); } }
[解决办法]
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)$