繁体   English   中英

使用正则表达式匹配模式

[英]Pattern matching using regular expressions

我有这两个字符串:

  1. “2013-01-28 12:10:01.680000”。

  2. “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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM