首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用正则表达式小于91的十进制和整数

用正则表达式小于91的十进制和整数
EN

Stack Overflow用户
提问于 2021-05-12 09:21:51
回答 3查看 76关注 0票数 1

我有这个regex /^(0|[1-9]\d*)(\.\d+)?$/

它允许所有十进制和整数。

我需要它把所有小于91的数字加起来。

我怎样才能做到这一点?

请帮帮忙

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-05-12 09:30:32

整数或小数小于 91可以这样实现:

代码语言:javascript
运行
复制
^(?:0|[1-8]\d?|90?)(?:\.\d+)?$

请看在线演示

  • ^ -启动线锚.
  • (?: -开放第一个非捕获组:
    • 0|[1-8]\d?|90? -匹配零 1-8和可选数字9与可选零.
    • ) -关闭第一非捕获组。

  • (?: -开放第二非捕获组:
    • \.\d+ -文字点和1+数字.
    • )? -关闭第二个非捕获组,并使它可选。

  • $端线锚.

编辑:如果您不介意按照"00“或"00.0000”匹配双零,可以使用:

代码语言:javascript
运行
复制
^(?:\d0?|[1-8]\d?)(?:\.\d+)?$

或者,甚至更少地使用负面展望:

代码语言:javascript
运行
复制
^(?!9[1-9])\d\d?(?:\.\d+)?$
票数 5
EN

Stack Overflow用户

发布于 2021-05-12 09:34:20

带着你所展示的样品,请试一试。

代码语言:javascript
运行
复制
^(?:[0-9]|[0-8][0-9]|90)(?:\.\d+)?$

上述regex在线演示

也可以缩短如下:

代码语言:javascript
运行
复制
^(?:[0-8]?[0-9]|90)(?:\.\d+)?$

解释:添加了上面的详细说明。

代码语言:javascript
运行
复制
^(?:                   ##Matching from starting of value and starting a non-capturing group here.
 [0-9]|[0-8][0-9]|90   ##Matching either 0 to 9 OR till 89 OR 9 here.
)                      ##Closing non-capturing group here.
(?:\.\d+)?$            ##In a non-capturing group matching dot followed by 1 or more digits keep it optional at the last of value.

奖金解决方案:只基于我的假设,如果您想要匹配额外的零,但仍然小于91,然后尝试以下。

代码语言:javascript
运行
复制
^(?:0+)?(?:[0-9]|[0-8][0-9]|90)(?:\.\d+)?$
票数 4
EN

Stack Overflow用户

发布于 2021-05-12 09:28:59

那这个呢?

代码语言:javascript
运行
复制
^(90|[0-8][0-9])$

只需匹配9000直到89

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67500786

复制
相关文章

相似问题

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