我無語了。。。。你在幫忙看下吧。。。

yami251139 2008-02-14 05:16:25
非常感謝你前面回答了下這個問題
http://topic.csdn.net/u/20080214/09/9b32cf9b-9589-4ae0-8c1e-7647abb6d608.html
結果到了下午。。。要求就變成了
9:00=< 開始時間 <11:30 并且 12:30=< 開始時間 <18:00
9:00< 終了時間 <=11:30 并且 12:30< 終了時間 <=18:00
你在幫忙回答下吧。。。
謝謝,非常感謝
順便問下
哪里有比較詳細的正則表達式的api之類的東西下 啊
再次謝謝
。。。。
...全文
135 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
dracularking 2008-02-14
  • 打赏
  • 举报
回复
好题啊 借用火龙果的数据来练练 只做了第二种 第一种类似的
最正统的分时间段匹配

public class Test {    
public static void main(String[] args) {
String[] str = {
"08:59", "9:00", "09:00", "09:01",
"10:00", "10:30", "11:29", "11:30",
"11:31", "12:29", "12:30", "12:31",
"15:25", "17:59", "18:00", "18:01",
"19:14", "20:33", "21:22", "23:59",
"9:60", "24:70", "1234"
};

String pattern = "^(((0?9(?!:00))|10):[0-5][0-9])|(11:[0-2][0-9])|(11:30)|((12(?!:30)):[3-5][0-9])|(1[3-7]:[0-5][0-9])|(18:00)$";

for (int i = 0; i < str.length; i++) {
System.out.printf("%5s %5s %n", str[i], str[i].matches(pattern));
}
}
}


Results:
08:59 false 
9:00 false
09:00 false
09:01 true
10:00 true
10:30 true
11:29 true
11:30 true
11:31 false
12:29 false
12:30 false
12:31 true
15:25 true
17:59 true
18:00 true
18:01 false
19:14 false
20:33 false
21:22 false
23:59 false
9:60 false
24:70 false
1234 false
cangyue87 2008-02-14
  • 打赏
  • 举报
回复
接触时间不是关键,你真抽时间学----比如公司让你专门负责正则(虽然这不可能)----半个月可能就不会比果子差了...

重点还是花了多少工夫在这里面...

星星啊它就是星星...佩服佩服喵~~``
yami251139 2008-02-14
  • 打赏
  • 举报
回复
不會吧。。。
那你今年幾歲啊
工作了幾年啊 。。
1年半。。
我接觸java也快又1年了吧。。。
正則表達式是昨天接觸的。。。
  • 打赏
  • 举报
回复
呵呵,我从开始学Java到现在有1年半了,接触正则表达式差不多半年多吧。
jinlibing110 2008-02-14
  • 打赏
  • 举报
回复
强人,学习。
yami251139 2008-02-14
  • 打赏
  • 举报
回复
那我小心的問一句
你試了多久又現在的這個水平的啊
  • 打赏
  • 举报
回复
中文的正则表达式资源很少的,关键在于练习,调试一下吧,我都是一点一点试出来的。
  • 打赏
  • 举报
回复
测试代码:
public class Test {    
public static void main(String[] args) {
String[] str = {
"08:59", "9:00", "09:00", "09:01",
"10:00", "10:30", "11:29", "11:30",
"11:31", "12:29", "12:30", "12:31",
"15:25", "17:59", "18:00", "18:01",
"19:14", "20:33", "21:22", "23:59",
"9:60", "24:70",
};
String pattern = "^(((0?9)|(1[03-7])):[0-5][0-9])|(11:[0-2][0-9])|(12:[3-5][0-9])$";
String pattern1 = "^(((0?9(?!:00))|(1([03-7]|8(?=:00)))):[0-5][0-9])|(11:[0-2][0-9])|(11:30)|(12(?!:30):[3-5][0-9])$";

for(int i = 0; i < str.length; i++) {
System.out.printf("%5s %5s %5s%n",
str[i],
str[i].matches(pattern),
str[i].matches(pattern1)
);
}
}
}


执行结果:

08:59 false false
9:00 true false
09:00 true false
09:01 true true
10:00 true true
10:30 true true
11:29 true true
11:30 false true
11:31 false false
12:29 false false
12:30 true false
12:31 true true
15:25 true true
17:59 true true
18:00 false true
18:01 false false
19:14 false false
20:33 false false
21:22 false false
23:59 false false
9:60 false false
24:70 false false
yami251139 2008-02-14
  • 打赏
  • 举报
回复
果然是強人 。。。
抽完根煙回來發現他已經搞定了。。。
哪里有的下正則表達式的api之類的東西?
最好是中文的pdf
yami251139 2008-02-14
  • 打赏
  • 举报
回复
就是說 開始時間要在 9:00到11:30 和 12:30到18:00 這2個時間段里面
終了時間同上。。。


天哪,这个好复杂.... 要想想看
=================================
不急。。。明天上午前搞出來就行了。。。我回去還要再查下呢
  • 打赏
  • 举报
回复
^(((0?9)|(1[03-7])):[0-5][0-9])|(11:[0-2][0-9])|(12:[3-5][0-9])$

^(((0?9(?!:00))|(1([03-7]|8(?=:00)))):[0-5][0-9])|(11:[0-2][0-9])|(11:30)|(12(?!:30):[3-5][0-9])$
aunty_flybird 2008-02-14
  • 打赏
  • 举报
回复
http://java.sun.com/j2se/1.4.2/docs/api/java/util/regex/Pattern.html
xql80329 2008-02-14
  • 打赏
  • 举报
回复
我不太理解你的需求
9:00= < 開始時間 <11:30 并且 12:30= < 開始時間 <18:00
9:00 < 終了時間 <=11:30 并且 12:30 < 終了時間 <=18:00
这是什么意思了
  • 打赏
  • 举报
回复
天哪,这个好复杂.... 要想想看

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧