用于Google Calendar API日期输出的正则表达式

Regex for Google Calendar API date output

本文关键字:输出 正则表达式 日期 API Google Calendar 用于      更新时间:2023-09-26

我有一个包含日期的字符串,它有很多格式的可能性。我用来匹配它的正则表达式越来越长。我希望能学到更简洁的表达。下面是各种格式。我想获得每个日期作为它自己的匹配:

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。真是荒唐。

编辑:

有人建议我检查日期的"to"部分,并在每一边运行正则表达式,而不是试图一次解释所有情况。还在寻找一个更简洁的解决方案来解决它的每一方面,但这将会有很大的帮助。

按照建议将日期分成两部分,然后使用date.js解析这两部分。然后是约会。parse(' satjul 16, 2011 06:30 pm')