Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在编写以月为单位接受天数的正则表达式([0-3])([0-9])。如何更改它,使其仅接受从 1 到 31 的适当天数,但不接受像我这样的 37 天……我尝试了交替 |,但我不知道如何将第一组包含在其中。 ([0-2])([0-9])|(3)([0-1])不工作
([0-3])([0-9])
([0-2])([0-9])|(3)([0-1])
如何更改它,以便我仍然有 2 个组和正确的日期?
编辑:2组,而不是4组
试试这个 :
(0)([1-9])|(1|2)([0-9])|(3)(0|1)
DEMO 仅匹配 01 到 31 之间的数字
(0[1-9]|[12][0-9]|3[01])
这在一组中接受 0-31 之间的值,但不关心二月没有 30,31 天。
对不起,看错了。如果要获取两组中的值,则必须使用负前瞻,如下所示:
([0-2]|3(?![^0-1]))([0-9])
但我认为 gawk 不支持这一点。