0

我正在编写以月为单位接受天数的正则表达式([0-3])([0-9])。如何更改它,使其仅接受从 1 到 31 的适当天数,但不接受像我这样的 37 天……我尝试了交替 |,但我不知道如何将第一组包含在其中。 ([0-2])([0-9])|(3)([0-1])不工作

如何更改它,以便我仍然有 2 个组和正确的日期?

编辑:2组,而不是4组

4

2 回答 2

1

试试这个 :

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

正则表达式图片

DEMO 仅匹配 01 到 31 之间的数字

于 2013-06-13T08:52:25.350 回答
0

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

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

对不起,看错了。如果要获取两组中的值,则必须使用负前瞻,如下所示:

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

我认为 gawk 不支持这一点。

于 2013-06-13T08:56:40.703 回答