簡體   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