[英]Pattern matching using regular expressions
我有这两个字符串:
“2013-01-28 12:10:01.680000”。
“2013-01-28 12:10:01”。
我想要一个正则表达式,对于所有字符串都将返回true: xxxx-xx-xx xx:xx:xx
,当x是数字时,无论后缀是什么(从点到后的值)。
现在我使用:
final String ACCEPTED_FORMAT = "\\\\d{4}-\\\\d{2}-\\\\d{2} \\\\d{2}:\\\\d{2}:\\\\d{2}.\\\\d{6}";
但我不想检查字符串中的点之后的值。
这应该做我认为的工作:
final String ACCEPTED_FORMAT =
"\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}(\\.\\d{6})?";
它使'。' 和可选后的6位数字。
但是,这不是验证日期的好方法,因为它允许所有类型的废话,包括不存在的月份,月末以后的日期等等。 有正确的日期解析器......如果你想正确验证日期,你应该使用一个。
(我觉得很难想象,你为什么会不希望正确验证的日期。什么是实用工具,允许用户输入废话像"2011-02-32 99:99:99"
?)
我认为你的正则表达必须是
\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}(\\.\\d{6})?
编辑: - @Stephen C- Dot角色也必须被转义。 (Dot会匹配任何角色)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.