你好,我有一个正常的表达式[2-5][0-5]:[0-8][0-8]
接受20:88,35:14,32:54等数字。
我使用anotattion javax.validation.constraints.Pattern
来验证实体。
但我需要接受空字符串或我显示的格式。
我尝试了[^.]|[2-5][0-5]:[0-8][0-8]
[^.]|([2-5][0-5]:[0-8][0-8])
^.|[2-5][0-5]:[0-8][0-8]
(^.)|[2-5][0-5]:[0-8][0-8]
但不行。我试过把empty|myformat
答案 0 :(得分:4)
试试这个:
^(?:[2-5][0-5]:[0-8][0-8])?$
(?:..)
是非捕获组,?
使该组可选。
^
和$
是字符串开头和结尾的锚点。
但是,如果您的目标是匹配第一部分20到55之间的数字,第二部分匹配00和88,那么这种模式会做得更好:
^(?:(?:[2-4][0-9]|5[0-5]):(?:[0-7][0-9]|8[0-8]))?$