这应该工作
^(?:(?:([01]?\d|2[0-3]):)?([0-5]?\d):)?([0-5]?\d)$
原因是错误消息中列出的符号具有特殊含义,但
d不是已定义的要使用的特殊符号之一,这意味着您必须对其进行转义(在符号前添加一个多余的符号)。

这应该工作
^(?:(?:([01]?\d|2[0-3]):)?([0-5]?\d):)?([0-5]?\d)$
原因是错误消息中列出的符号具有特殊含义,但
d不是已定义的要使用的特殊符号之一,这意味着您必须对其进行转义(在符号前添加一个多余的符号)。