我试图找到一个与以下格式的日期匹配的正则表达式: 3-Jul-16 或 30-Jun-16
我最初尝试过这个正则表达式:
/[0-9]{1,}-[a-zA-Z]{3}-[0-9]{1,}/g
但它也匹配 947-UfO-104 等日期,这不是我想要的。
首先,我得到了这个月:
/[0-9]{1,}-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-[0-9]{1,}/g
现在,这一年很好,因为它可能是任何数字 对于那一天,我尝试过:
/([1-9]|1[0-9]|2[0-9]|30|31)-(Jan|Feb.../g
现在,我遇到的问题是: 73-Jul-2015
匹配: 2015年7月3日
我尝试确保日期后面跟着一个非数字字符:
/[^0-9]{1,}([1-9]|1[0-9]|2[0-9]|30|31)-(Jan|Feb.../g
但是,当日期在字符串的开头时,它没有捕获它(因为它没有跟着任何字符)。
所以我的问题是,是否有正则表达式部分说"非数字字符或空字符串" ?
答案 0 :(得分:1)
将任务分成3部分。首先是1-31(tutorial)范围内的数字,然后是月份的可能值列表,然后是两个数字。
\b([1-9]|[12][0-9]|3[01])-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d{2})\b