关于正则表达式的写法,那位能帮我看看!

MountainRiver 2008-01-16 09:56:23
我想匹配的时间有三钟情况:
2006-09-07 32:09:32
2006-09-07
2006-9-7

regex = "([0-9]{4}\\-[0-9]{1,2}\\-[0-9]{1,2})
这个不行
正确的该怎么写呢?
...全文
148 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
日期采用正则表达式来验证是否太复杂了一点?里面涉及大月、小月、闰年、平年等诸多的历法问题。
老紫竹 2008-01-16
  • 打赏
  • 举报
回复
"\\d{4}-\\d{1,2}-\\d{1,2}\\s*?(\\d{1,2}\\:\\d{1,2}\\:\\d{1,2})?"
边城狂人 2008-01-16
  • 打赏
  • 举报
回复
给你个完整的正则表达式,这个比加.*要精确一点。

[0-9]{4}\\-[0-9]{1,2}\\-[0-9]{1,2}(\\s+(\\d\\d?:){2}\\d\\d?)?

月份那里如果要精确点应该写成

(1[0-2]|0?[1-9])

日那里也可以类似的写得更精确一点
shan1119 2008-01-16
  • 打赏
  • 举报
回复
按照你的意思.同意一楼.
regex = "([0-9]{4}\\-[0-9]{1,2}\\-[0-9]{1,2}\\s[0-9]{1,2})\\:[0-9]{1,2})\\:[0-9]{1,2}))
hanfengthinker 2008-01-16
  • 打赏
  • 举报
回复
学习一下几位大哥
边城狂人 2008-01-16
  • 打赏
  • 举报
回复
你没匹配上后面的时间嘛,后面加个.*应该就可以了
MountainRiver 2008-01-16
  • 打赏
  • 举报
回复
谢谢大家
LexChen 2008-01-16
  • 打赏
  • 举报
回复
估计楼主只是想从某个流或输出中找出日期的格式而不是验证输入的字符串是否为日期格式,前者可以比较粗略的判断
而后者则需要考虑月份不能超过12,日期跟月的对应等,正则就有点力不从心了

62,623

社区成员

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

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