我在 JENKINS 中的 MM/DD/YYYY 正则表达式有什么问题
What's wrong with my MM/DD/YYYY regex in JENKINS
我需要验证 MM/DD/YYYY 中的日期格式。在我的场景中,Null 也是有效的。
这是我的正则表达式 [0-9]{2}\/[0-9]{2}\/[0-9]{4}$ |
下图显示了我的正则表达式的作业配置
错误
我把原来的修改成这样:
^(?:(?:(?:0?[13578]|1[02]|(?:Jan|Mar|May|Jul|Aug|Oct|Dec))(\/|-|\.)31)|(?:(?:0?[1,3-9]|1[0-2]|(?:Jan|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec))(\/|-|\.)(?:29|30)))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:(?:0?2|(?:Feb))(\/|-|\.)(?:29)(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:(?:0?[1-9]|(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep))|(?:1[0-2]|(?:Oct|Nov|Dec)))(\/|-|\.)(?:0?[1-9]|1\d|2[0-8])(?:(?:1[6-9]|[2-9]\d)?\d{2})$
我会用
进行初始验证
^[0-9]{2}\/[0-9]{2}\/[0-9]{4}$
我添加了 ^
来指示字符串的开头,并且我从原始正则表达式的末尾删除了 |
(它是联合运算符,OR)。我测试了 here.
您在 $ 符号后有 space,这就是您输入不匹配的原因。
[0-9]{2}\/[0-9]{2}\/[0-9]{4}$ |
// here __^
删除它 ([0-9]{2}\/[0-9]{2}\/[0-9]{4}$
) 并且,如果你想接受空字符串,用一个组添加空字符串,并添加字符串锚点的开头:
^([0-9]{2}\/[0-9]{2}\/[0-9]{4}|)$
或者,更好的是,将组设为可选
^([0-9]{2}\/[0-9]{2}\/[0-9]{4})?$
我需要验证 MM/DD/YYYY 中的日期格式。在我的场景中,Null 也是有效的。
这是我的正则表达式 [0-9]{2}\/[0-9]{2}\/[0-9]{4}$ |
下图显示了我的正则表达式的作业配置
错误
我把原来的修改成这样:
^(?:(?:(?:0?[13578]|1[02]|(?:Jan|Mar|May|Jul|Aug|Oct|Dec))(\/|-|\.)31)|(?:(?:0?[1,3-9]|1[0-2]|(?:Jan|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec))(\/|-|\.)(?:29|30)))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:(?:0?2|(?:Feb))(\/|-|\.)(?:29)(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:(?:0?[1-9]|(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep))|(?:1[0-2]|(?:Oct|Nov|Dec)))(\/|-|\.)(?:0?[1-9]|1\d|2[0-8])(?:(?:1[6-9]|[2-9]\d)?\d{2})$
我会用
进行初始验证^[0-9]{2}\/[0-9]{2}\/[0-9]{4}$
我添加了 ^
来指示字符串的开头,并且我从原始正则表达式的末尾删除了 |
(它是联合运算符,OR)。我测试了 here.
您在 $ 符号后有 space,这就是您输入不匹配的原因。
[0-9]{2}\/[0-9]{2}\/[0-9]{4}$ |
// here __^
删除它 ([0-9]{2}\/[0-9]{2}\/[0-9]{4}$
) 并且,如果你想接受空字符串,用一个组添加空字符串,并添加字符串锚点的开头:
^([0-9]{2}\/[0-9]{2}\/[0-9]{4}|)$
或者,更好的是,将组设为可选
^([0-9]{2}\/[0-9]{2}\/[0-9]{4})?$