[英]how can I get the date from String using regex in java?
這是我的代碼:
String t1="postby <span title=\"2011-4-5 17:22\">yesterday 17:22</span>";
String t2="postby 2010-11-12 10:02";
我想使用一個正則表達式從t1
或t2
獲得2011-4-5 17:22
: 2010-11-12 10:02
(輸入t1
或t2
,輸出日期)
怎么做? (請給我一些示例代碼,謝謝)
\d{4}-\d{1,2}-\d{1,2} \d{2}:\d{2}
一些注意事項:
String pattern = "\\\\d{4}-\\\\d{1,2}....."
\\d
表示“數字”(0-9) {x}
表示“ x次” {x,y}
表示“至少x,但不超過y次” 您允許多少次假匹配? 博zh 已經提出了模式
\d{4}-\d{1,2}-\d{1,2} \d{2}:\d{2}
但這與以下可疑情況匹配: 0000-1-1 00:00
(沒有零年), 2011-0-1 00:00
(沒有零月), 2011-13-1 00:00
(沒有是沒有月13日), 2011-1-32 00:00
(沒有月日32), 2011-12-31 24:00
(最多只有leap秒)和2011-12-31 23:61
(最多有一個飛躍)。
您想解析幾乎但不是完全以ISO-8601格式顯示的日期時間。 如果可以, 請使用該國際標准格式。
在我的程序之一(使用grep
的shell腳本)中,我使用了以下正則表達式:
^20[0-9][0-9]-[01][0-9]-[0-3][0-9]T[0-9][0-9]:[0-9][0-9]:[0-9][0-9]UTC$
我有一個額外的T
和UTC
可以處理,只對本世紀的日期感興趣,並且以秒為單位進行解析。 我看到我對小時和分鍾值的限制不是那么嚴格,可能是因為傳統的C / C ++轉換可以處理它們。
我想您因此可以使用以下內容:
\d{4}-[01]\d-[0-3]\d [0-2]\d:[0-6]\d
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.