匹配 MM/YYYY 或 m/YYYYY 的正则表达式
Regular Expression to match MM/YYYY or m/YYYYY
我想查看匹配以下日期格式的正则表达式。
1/2017
01/2017
12/2017
这是我目前拥有的,但它只匹配最后两个。我错过了什么?
((0[1-9])|(1[0-2]))\/(\d{4})
如果格式为 12/1/2017(MM/dd/yyyy 或 dd/MM/yyyy),我也不希望它完全匹配
谢谢,
((0?[1-9])|(1[0-2]))\/(\d{4})
。第一个输入没有 0。添加 + 将匹配零次或一次出现的 0
通过在正则表达式中的 0
旁边添加 ?
使 0
可选。
((0?[1-9])|(1[0-2]))\/(\d{4})
编辑: 用 \b
(边框)包围上面的正则表达式,所以它 不 匹配 5/21/2017
完全没有。
\b((0?[1-9])|(1[0-2]))\/(\d{4})\b
编辑 2: 根据 Glenn 的评论更新正则表达式:
(?:^|[^\/\d])\K(?:0?[1-9]|1[0-2])\/\d{4}\b
这个正则表达式:
/^((0?[1-9]|1[0-2])\/\d{4})$/gm
将匹配:
1/2017
01/2017
12/2017
但不会匹配:
12/1/2017
13/2017
111/2017
/2017
修饰符g
用于全局。
修饰符 m
用于 multi-line,这使得使用 ^ 和 $ 来分隔开始和结束成为可能。
我想查看匹配以下日期格式的正则表达式。
1/2017
01/2017
12/2017
这是我目前拥有的,但它只匹配最后两个。我错过了什么?
((0[1-9])|(1[0-2]))\/(\d{4})
如果格式为 12/1/2017(MM/dd/yyyy 或 dd/MM/yyyy),我也不希望它完全匹配
谢谢,
((0?[1-9])|(1[0-2]))\/(\d{4})
。第一个输入没有 0。添加 + 将匹配零次或一次出现的 0
通过在正则表达式中的 0
旁边添加 ?
使 0
可选。
((0?[1-9])|(1[0-2]))\/(\d{4})
编辑: 用 \b
(边框)包围上面的正则表达式,所以它 不 匹配 5/21/2017
完全没有。
\b((0?[1-9])|(1[0-2]))\/(\d{4})\b
编辑 2: 根据 Glenn 的评论更新正则表达式:
(?:^|[^\/\d])\K(?:0?[1-9]|1[0-2])\/\d{4}\b
这个正则表达式:
/^((0?[1-9]|1[0-2])\/\d{4})$/gm
将匹配:
1/2017
01/2017
12/2017
但不会匹配:
12/1/2017
13/2017
111/2017
/2017
修饰符g
用于全局。
修饰符 m
用于 multi-line,这使得使用 ^ 和 $ 来分隔开始和结束成为可能。