我希望匹配以下格式:
1d2h3m4s5z
51d344h33m44s55z
>12d3h
<12m5s
>12h32s
12s4z
12z
以下内容应返回false / null:
h2m
2g3m4s
455d89m45c
c9m8s
所以第一个字符必须是<
或>
或''
。然后是1d2h3m4s5z
之类的格式,但只有1d
或1h
或>1m3s
才会返回匹配。
这个想法是这些d h s s代表day
,hour
,min
,second
,z
这就是我所拥有的^[><]\d+[dhmsz]\d+[dhmsz]\d+[dhmsz]\d+[dhmsz]\d+[dhmsz]$
https://regex101.com/r/tO2oF1/6,但它并不完全正确。只有<2d2h2m2s2z
或>2d2h2m2s2z
有效。
答案 0 :(得分:0)
(双)负面观察不包括前缀:(?<![^><])
匹配内容(\d+[dhmsz]){1,5}
否定前瞻排除后缀:(?![^dhmsz])
所有这一切都是(?<![^><])(\d+[dhmsz]){1,5}(?![^dhmsz])
应符合您的所有情况
答案 1 :(得分:0)
344h是有效输入吗?
反正:
^[><]+\d*[dhmsz]+\d*[dhmsz]+\d*[dhmsz]+\d*[dhmsz]+\d*[dhmsz]+$
可以使用任何长度整数。和
\d{,2}
对于最长2位的整数。