正则表达式匹配未正确验证
Regex match not validating correctly
我有以下正则表达式 ^(2[0-3]|1?[0-9])?(\:[0-5]?[0-9])?$
8:45
匹配,但是 08:45
不匹配。
如何重写以允许 08:45
?
如果可能,我还想检查 .
或 :
而不仅仅是 .
除了“1”,还允许在“20:00”之前的几个小时开始时使用“0”:
^(2[0-3]|[01]?[0-9])?(:[0-5]?[0-9])?$
请注意,您不需要转义冒号 - 它们没有特殊的正则表达式含义。
此外,由于所有内容都是可选的,因此此正则表达式匹配一个空白字符串。
如果要匹配某物,请在^
之后添加(?!$)
。 ^(?!$)
是锚定到开始的否定前瞻,要求输入结束不跟随输入开始(即,输入不是零长度)。
请试试这个正则表达式。
[0]?\d[:\.]\d\d
可以捕捉到8:4508:458.45和08.45
或单击此处查看结果。
我有以下正则表达式 ^(2[0-3]|1?[0-9])?(\:[0-5]?[0-9])?$
8:45
匹配,但是 08:45
不匹配。
如何重写以允许 08:45
?
如果可能,我还想检查 .
或 :
而不仅仅是 .
除了“1”,还允许在“20:00”之前的几个小时开始时使用“0”:
^(2[0-3]|[01]?[0-9])?(:[0-5]?[0-9])?$
请注意,您不需要转义冒号 - 它们没有特殊的正则表达式含义。
此外,由于所有内容都是可选的,因此此正则表达式匹配一个空白字符串。
如果要匹配某物,请在^
之后添加(?!$)
。 ^(?!$)
是锚定到开始的否定前瞻,要求输入结束不跟随输入开始(即,输入不是零长度)。
请试试这个正则表达式。
[0]?\d[:\.]\d\d
可以捕捉到8:4508:458.45和08.45
或单击此处查看结果。