我是 Regex 的新手,我想知道是否有人可以提供帮助。我什至不确定 Regex 是否是我正在尝试做的事情的最佳选择。
我有一个正在查看的字符串数组。我想在数组中找到与各种日期格式匹配的所有项目。以下是我尝试匹配的示例格式。
2012 年 4 月 1 日 - 当天没有前导零的短月份名称 - 匹配
2012 年 4 月 1 日 - 日期前导零的短月份名称 - 匹配
2012 年 4 月 1 日 - 全文本月份名称,当天没有前导零 - 匹配
2012 年 4 月 1 日 - 日期前导零的完整文本月份名称 - 匹配
2012 年 4 月 1 日 - 月份和日期没有前导零 - 匹配
2012 年 4 月 1 日 - 月份和日期的前导零 - 匹配
2012 年 2 月 29 日 - 如果年份是飞跃,则允许 2/29 - 匹配
2001 年 13 月 12 日 - 1-12 月以外的月份 - 不匹配
2012 年 2 月 30 日 - 一个月中有太多天 - 不匹配
2011 年 2 月 29 日 - 如果不是闰年 - 不匹配
我开发的当前正则表达式。
\b(?:(?:Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May?|Jun(?:e)?|Jul(?:y) |Aug(?:ust)?|Sep(?:t(?:ember)?)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?))|(0?[1-9]|1[012])[- /.,](0?[1-9]|1[0-9]|2[0-9]|3[01])
我可以开发正则表达式来去除每种格式的各个部分,但是将它们链接在一起是这样我只会得到一个匹配项。目前它匹配两次(月,月+日)。我只希望它在整个匹配时匹配。
谢谢
有限的