匹配日期,不包括月份中的 0
Matching date, excluding 0 from month
我们有如下命名的文件:
d31_20210315-19232.sql.tar.gz
d31_20201215-19232.sql.tar.gz
匹配年份很容易:
(?<=_)(?P<year>\d{4})
匹配没有 0 的月份让我感到困惑:
(0(?P<month>[1-9]))|((?P<month>[1][1-9]))
这是不允许的,但描述了我想做什么。
与我想忽略 0 并在组内匹配 1-9 或 12-31 的那一天相同:
(?P<day>
我正处于尝试围绕正则表达式捕获进行编码以获得所需结果的阶段,但它一直困扰着我,我无法得到这个。
你可以试试这个:
(?<=_)(?P<year>\d{4})0?(?P<month>\d+)(?=\d\d-)0?(?P<day>\d+)
(?<=_)(?P<year>\d{4})
匹配年份。
0?(?P<month>\d+)(?=\d\d-)
匹配月份,忽略 0
如果有的话。还要确保在组 month
之后,还有 2 个数字前面有一个破折号。
0?(?P<day>\d+)
匹配日期,有的话忽略0
。
勾选 test cases
我们有如下命名的文件:
d31_20210315-19232.sql.tar.gz
d31_20201215-19232.sql.tar.gz
匹配年份很容易:
(?<=_)(?P<year>\d{4})
匹配没有 0 的月份让我感到困惑:
(0(?P<month>[1-9]))|((?P<month>[1][1-9]))
这是不允许的,但描述了我想做什么。
与我想忽略 0 并在组内匹配 1-9 或 12-31 的那一天相同:
(?P<day>
我正处于尝试围绕正则表达式捕获进行编码以获得所需结果的阶段,但它一直困扰着我,我无法得到这个。
你可以试试这个:
(?<=_)(?P<year>\d{4})0?(?P<month>\d+)(?=\d\d-)0?(?P<day>\d+)
(?<=_)(?P<year>\d{4})
匹配年份。0?(?P<month>\d+)(?=\d\d-)
匹配月份,忽略0
如果有的话。还要确保在组month
之后,还有 2 个数字前面有一个破折号。0?(?P<day>\d+)
匹配日期,有的话忽略0
。
勾选 test cases