首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何匹配任意两个数字而不是都为零的正则表达式?

如何匹配任意两个数字而不是都为零的正则表达式?
EN

Stack Overflow用户
提问于 2016-04-05 12:43:08
回答 1查看 10.1K关注 0票数 4

示例

代码语言:javascript
复制
01  =  match
10  =  match
99  =  match
00  =  no match

到目前为止,我有这样一个:/^ [1-9][0-9] | [0-9][1-9] $/,但我有感觉它可以优化。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-05 12:46:33

您可以使用负面展望来限制一般的[0-9]{2}模式:

代码语言:javascript
复制
^(?!00)[0-9]{2}$

regex演示

[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可能更好,因为它与字符串的末尾匹配)。
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36426713

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档