Gawk正常表达了几个月的日子

时间:2013-06-13 08:44:18

标签: regex gawk

我正在编写接受几个月([0-3])([0-9])天的正则表达式。如何更改它所以它只接受从1到31的适当天数,但不是像我一样的37 ...我尝试了交替|,但我不知道如何将第一组包含在其中。 ([0-2])([0-9])|(3)([0-1])不起作用

如何更改它以便我还有2组和正确的日期?

编辑:2组,而不是4

2 个答案:

答案 0 :(得分:1)

试试这个:

(0)([1-9])|(1|2)([0-9])|(3)(0|1)

Regular expression image

DEMO Match numbers between 01 and 31 only

答案 1 :(得分:0)

(0[1-9]|[12][0-9]|3[01])

这接受一组中0-31之间的值,但不关心2月没有天数为30,31。

抱歉,误读了。 如果你想获得两组中的值,你必须使用负向前瞻:

([0-2]|3(?![^0-1]))([0-9])

但是我觉得gawk不支持这个。