Regex 日期格式1st mon/month yyyy和mon/month,1,yyyy的正则表达式模式

Regex 日期格式1st mon/month yyyy和mon/month,1,yyyy的正则表达式模式,regex,Regex,我有以下日期格式的正则表达式模式,但它们没有按预期工作 第一个星期一/月yyyy(应与1785年4月2日、1999年4月1日、2000年4月3日、1999年1月4日类型的日期匹配) 一月一日(应与2000年11月2日和2000年11月4日类型的日期匹配) (1,2][0-9)3[0-1[0-9 9]3[0-1[0-1[0-1]3[0-1)3[0-1,(:(1)1月1月/1月/1月/1月/1月/1月/1月/1月/1月/1月/1月/周一/1月/1/1/1/1/1/1/1/1/1/1/1/1/1/1/

我有以下日期格式的正则表达式模式,但它们没有按预期工作

第一个星期一/月yyyy(应与1785年4月2日、1999年4月1日、2000年4月3日、1999年1月4日类型的日期匹配)

一月一日(应与2000年11月2日和2000年11月4日类型的日期匹配)

(1,2][0-9)3[0-1[0-9 9]3[0-1[0-1[0-1]3[0-1)3[0-1,(:(1)1月1月/1月/1月/1月/1月/1月/1月/1月/1月/1月/1月/周一/1月/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1月/1/1/1/1/1/1/1/1/1/月/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/月/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/|[Nn]ov(?:ember)?|[Dd]ec(?:ember)?\s\d{4}

月/月,1,1,月/月,1,1,1,YYYYY-<代码>\s?((:[Jj]一个(以下简称:年)月/月,1,1,月/月,1,月/月,1,月/月,1,月/月/月,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,YYYYYYYYYYYYYYYYYYYYYYY-YYYYY-(((((((((


这两种格式在一年中都超过了4位,比如说我可以给11月2日200000000,并且匹配成功了。它应该只接受4位数字。请尝试在两个正则表达式的末尾添加
\b
。这将强制日期在“单词边界”处中断,这意味着如果您有四个以上的数字,正则表达式将不匹配

  • ab\d{4}
    将匹配
    ab1234
    ,并将“匹配”
    ab123456
    ,直到
    4
    -我假设您希望第二个案例失败,因为它的格式不正确,并且数字太多
  • ab\d{4}\b
    将不匹配
    ab123456
    ,但将匹配
    ab1234

您期望的行为是什么,您实际收到的行为是什么?请发布示例。感谢Nick我更新了描述,Nick做了很多工作。一个帮助是我有一个与日期格式dd/mm/yyyy(即1988年10月25日)匹配的正则表达式。正则表达式模式:-\s(?:0?[1-9]|[1,2][0-9]|[3[0-1])(?:/(?:0?[1-9]|[0-2])(?:/)(?:/)(?:\d{4})但根据我的要求,日期前有一个字符串,即日期为1988年10月25日,我需要使用正则表达式模式进行验证。请推荐一些模式。很高兴能提供帮助!请考虑接受它的答案来回答你的问题,所以未来的读者知道什么是有效的。如果知道日期前面的字符串中没有数字,可以将
[^\d\n]+
放在正则表达式前面以捕获字符串。如果您知道将出现的确切单词,您可以将
date is
放在正则表达式前面,以验证确切的字符串。否则,
*?
是捕获日期之前所有内容的可能选项。祝你好运