示例:
01 = match
10 = match
99 = match
00 = no match
Run Code Online (Sandbox Code Playgroud)
到目前为止,我有这个:/^ [1-9][0-9] | [0-9][1-9] $/但我觉得它可以优化.
您可以使用负向前瞻来限制通用[0-9]{2}模式:
^(?!00)[0-9]{2}$
Run Code Online (Sandbox Code Playgroud)
请参阅正则表达式演示
这[0-9]{2}将完全匹配2位数.该(?!00) 负前瞻将一次在字符串的开始执行,将确保没有00,直到字符串结束.如果字符串等于00,则不会找到匹配项.
在Negative Lookahead的工作原理中查看更多信息.
详细的模式说明:
^ - 字符串的开头(?!00)- 如果0在当前位置之后有两个s(在字符串的开头),则表示匹配失败的否定前瞻.由于下一个子模式 - [0-9]{2}$只允许字符串中的2个符号,我们不必在前瞻中添加任何锚点,在其他情况下,必须添加$到仅排除00匹配.[0-9]{2}- 正好两个(由于限制量词{min(,max)?})数字(在大多数口味中,[0-9]可以替换为\d,但在某些口味中\d也可以比常规更多[0123456789])$- 字符串的结尾(取决于正则表达式的味道,\z因为它匹配字符串的最末端,因此可能更好).| 归档时间: |
|
| 查看次数: |
5430 次 |
| 最近记录: |