[英]Regex for Google Calendar API date output
我有一個包含日期的字符串,它有很多格式的可能性。 我匹配它的正則表達式變得荒謬而冗長。 我希望學習更簡潔的表達方式。 以下是各種格式。 我想將每個日期作為自己的匹配項:
Sat Jul 16, 2011
Sat Jul 16, 2011 6pm to 8pm
Sat Jul 16, 2011 6pm to 8:30pm
Sat Jul 16, 2011 6:30pm to 8pm
Sat Jul 16, 2011 6:30pm to 8:30pm
Sat Jul 16, 2011 to Sun Jul 17, 2011
Sat Jul 16, 2011 6pm to Sun Jul 17, 2011 8pm
Sat Jul 16, 2011 6:30pm to Sun Jul 17, 2011 8pm
Sat Jul 16, 2011 6pm to Sun Jul 17, 2011 8:30pm
Sat Jul 16, 2011 6:30pm to Sun Jul 17, 2011 8:30pm
在我來這里問之前,我已經達到了這一點:
([A-Z]{1}[a-z]{2} [A-Z]{1}[a-z]{2} [0-9]{1,2}, [0-4]{4} [0-9]{1,2}[ap]{1}m)( to ([A-Z]{1}[a-z]{2} [A-Z]{1}[a-z]{2} [0-9]{1,2}, [0-4]{4} [0-9]{1,2}[ap]{1}m))?
它將返回第一個日期,如果存在則返回第二個日期,但僅適用於這種格式: Sat Jul 16, 2011 6pm to Sun Jul 17, 2011 8pm
。 那太荒謬了。
編輯:
有人建議我檢查日期的“到”部分,並在每一側運行正則表達式,而不是試圖一次考慮所有情況。 仍在為它的每一面尋找更簡潔的解決方案,但這將有很大幫助。
按照建議將日期分成兩半,然后使用date.js解析兩半。 然后是 Date.parse('Sat Jul 16, 2011 6:30pm')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.