我正在编写正则表达式,它接受以月([0-3])([0-9])表示的日期。如何更改它,使其只接受从1到31的适当天数,而不是像我这样的37天……我尝试了alternation |,但我不知道如何将第一组包含在其中。([0-2])([0-9])|(3)([0-1])不工作
如何更改它,使我仍然有两个组和适当的日期?
编辑:2组,不是4组
发布于 2013-06-13 16:52:25
试试这个:
(0)([1-9])|(1|2)([0-9])|(3)(0|1)

演示 Match numbers between 01 and 31 only
发布于 2013-06-13 16:56:41
(0[1-9]|[12][0-9]|3[01])
这在一个组中接受0-31之间的值,但并不关心二月是否没有天数30,31。
对不起,我看错了。如果你想得到两个组中的值,你必须像这样使用负先行:
([0-2]|3(?![^0-1]))([0-9])
但是我认为gawk不支持这一点。
https://stackoverflow.com/questions/17082818
复制相似问题