我希望看到一个与以下日期格式匹配的正则表达式。
1/2017
01/2017
12/2017
这是我到目前为止所拥有的,但它只匹配最后两个。我错过了什么?
((0[1-9])|(1[0-2]))\/(\d{4})
如果格式为12/1/2017(MM / dd / yyyy或dd / MM / yyyy),我也不希望它完全匹配
谢谢,
答案 0 :(得分:3)
通过在正则表达式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
答案 1 :(得分:2)
((0?[1-9])|(1[0-2]))\/(\d{4})
。第一个输入没有0.添加+将匹配零次或一次0
答案 2 :(得分:1)
这个正则表达式:
resolve: {
alias: {
// NOTE: You should set 'highcharts/highcharts.src.js'
// if you are not going to use <chart type="StockChart"
highcharts$: "highcharts/highstock.src.js"
},
将匹配:
/^((0?[1-9]|1[0-2])\/\d{4})$/gm
但不会匹配:
1/2017
01/2017
12/2017
修饰符12/1/2017
13/2017
111/2017
/2017
用于全局。
修饰符g
用于多行,这使得使用^和$来分隔开始和结束。