首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >regex (java)匹配等于或大于20的数字,增量为5,不允许前导零。

regex (java)匹配等于或大于20的数字,增量为5,不允许前导零。
EN

Stack Overflow用户
提问于 2015-11-12 11:43:59
回答 1查看 268关注 0票数 0

我是一个新用户,所以请原谅这个问题是否应该在它原来的帖子中回答:regex匹配数大于或等于20,递增5,范围从20到999

Neverteless,以下是当前的问题:

  • 匹配所有等于或大于20的数字(没有上限)
  • 增加5次
  • 无小数点
  • 不应该允许前导零

在另一篇文章中使用stackoverflow用户YMI响应:

代码语言:javascript
复制
(\d{2}|[2-9])[05]

用户nhahtdh

代码语言:javascript
复制
^([2-9]|[1-9]\d)[05]$

然而,我想探索的选项,没有上限和前导零点也不被允许。

EN

回答 1

Stack Overflow用户

发布于 2015-11-12 12:06:04

我的回答非常类似于罗氏,但请注意\d+而不是\d,它没有对字符数量设置上限。

你会想要一个这样的正则表达式:

代码语言:javascript
复制
\b((?:[23456789]|[123456789]\d+)[05])\b

[实例化]

为了快速解释这里发生的事情:

  • \b匹配一个边界,比如空格或符号,这样\b就可以从文本中找到完整的单词。
  • 接下来,我们为单词前缀提供两个选项,它可以是单个数字2或更高:[23456789]
  • 也可以是2个或更多的数字,这些数字不被0:[123456789]\d+所领导。
  • 对于后缀,我们要求它是5:[05]的倍数。

顺便说一句,您可以匹配符合其他条件的数字,但也可以通过简单地消费0,然后匹配该数字来实现领先的0,注意添加了0*,它将匹配任意数量的领先0:

代码语言:javascript
复制
\b0*((?:[23456789]|\d{2,})[05])\b
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33670681

复制
相关文章

相似问题

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