这是输入字符串253:13:2a
条件:
我想排除中间可能的数字,如00,12,19。
e.g。
253:13:2a // is correct
but 253:00:2a // not correct
253:19:2a // not correct
我正在使用以下正则表达式,但它无法正常工作。
^253:[[0-2][0-9]]&&[^[(00)(12)(19))]]:2a$
答案 0 :(得分:3)
这是一个解决方案:
^253:(?!00)(?!12)(?!19)[0-2][0-9]:2a$
这个使用负前瞻来排除包含“00”,“12”和“19”的输入。
如果真的希望在没有前瞻的情况下做到这一点,请按以下方式进行:
^253:(0[1-9]|1[013-8]|2[0-9]):2a$
这个会非常快,但我会选择最能模仿背后逻辑的那个,这样就更容易维护。
答案 1 :(得分:1)