[英]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.