示例
01 = match
10 = match
99 = match
00 = no match到目前为止,我有这样一个:/^ [1-9][0-9] | [0-9][1-9] $/,但我有感觉它可以优化。
发布于 2016-04-05 12:46:33
您可以使用负面展望来限制一般的[0-9]{2}模式:
^(?!00)[0-9]{2}$[0-9]{2}将精确匹配2位数字。(?!00) 负前瞻将在字符串的开头执行一次,并确保在字符串结束之前没有00。如果字符串等于00,则不会找到匹配项。
在负面展望是如何工作的可以看到更多信息。
详细的模式解释:
^ -字符串的开始(?!00) -如果在当前位置之后有两个0s (在字符串的开头),则会导致匹配失败。由于下一个子模式-- [0-9]{2}$ --只允许字符串中的2个符号,所以我们不必在展望中添加任何锚,在其他情况下,必须添加$才能排除00匹配。[0-9]{2} --正是两个数字(多亏了限定符{min(,max)?})数字(在大多数口味中,[0-9]可以被\d替换,但在某些口味中\d也可以比普通的[0123456789]更匹配)。$ -字符串的末端(根据正则表达式的风格,\z可能更好,因为它与字符串的末尾匹配)。https://stackoverflow.com/questions/36426713
复制相似问题