- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前有:
(星期日|星期一|星期二|星期三|星期四|星期五|星期六),?\s+(一月|二月|三月|四月|五月|六月|七月|八月|九月|十月|十一月|十二月)\s+[0-3]?[0-9],?\s+[0-2][0-9][0-9][0-9],?\s+([01]?[0-9 ]|2[0-3]):[0-5][0-9]:[0-9][0-9][0-9],?\s+(上午|下午)
...作为我的正则表达式,但是当使用一些测试工具进行断言时,我发现它失败了。哪里搞砸了?我从网络应用程序获取日期时间文本并断言它与上面的正则表达式匹配。
最佳答案
事实上,每个其他试图修复您的正则表达式的答案都与您犯错的正则表达式的不同部分有关;这应该告诉您它不是适合这项工作的工具。
当正则表达式又短又紧凑时,很难得到正确的结果,这样的长度将是一场噩梦,而且将来没有人能够接触它,因为担心会以某种神秘的方式破坏它.
SimpleDateFormat.parse()
是 Java 中处理 String
格式的日期信息的惯用方法。
Some people, when confronted with a problem, think "I know, I'll use regular expressions." Now they have two problems - Jamie Zawinski
和that quote来自 alt.religion.emacs
邮件列表!
SimpleDateFormat.parse()
是正确的做法。无论如何,您可以使用正则表达式匹配您想要的内容,但您不应该不执行您想要执行的所有验证操作。您将验证逻辑与匹配逻辑混为一谈,两者似乎在某些方面重叠,但在这种情况下,验证应该是代码,而不是正则表达式测试。
以上表达式将匹配您在标题中请求的字符串。但它不会尝试验证数字的范围,如果您这样做了,您将如何处理闰年和二月?,正则表达式会变得更难以维护。
在这种情况下,您应该使用正则表达式对数据进行分类,以确保它匹配模式或格式,然后将其传递给真正的解析器或传递组到实际执行范围验证和其他操作的方法。
关于java - 日期时间格式的正则表达式 : "Wednesday, August 08, 2012 9:38:31.113 AM",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11888220/
我是一名优秀的程序员,十分优秀!