首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >数字1-25的正则表达式

数字1-25的正则表达式
EN

Stack Overflow用户
提问于 2016-08-25 06:24:32
回答 4查看 14.1K关注 0票数 2

我正在做一个音乐创作项目。输入只包含阿尔法字符和数字。regex是我们设置的限制条件之一。

因此,这使我的数字低于26,但如果27这样的数字出现,它仍然是2和7。我怎么能排除所有的数字26和更高?谢谢!

代码语言:javascript
运行
复制
/[0-2][0-5]|[1-9]/g 

我应该add...this是一个大字符串的一部分,在数字前后都有字母和空格。所以我必须识别字符串中的数字并把它们拉出来。只使用string.prototype.match()和regex。说来话长。Thx

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-08-25 07:00:28

您的[0-2][0-5]|[1-9]正则表达式模式匹配字符串中任何位置的0-2数字序列和0-5数字或1-9数字。

要匹配从125的单个值,可以使用

代码语言:javascript
运行
复制
/\b(0?[1-9]|1[0-9]|2[0-5])\b/g

regex演示

模式细节

  • \b -主导词边界
  • (0?[1-9]|1[0-9]|2[0-5]) -可供选择的任何一种:
    • 0?[1-9] -一个可选的前导0,后面跟着一个从19的数字
    • 1[0-9] - 10直到19
    • 2[0-5] - 20直到25

  • \b -尾随字界
票数 3
EN

Stack Overflow用户

发布于 2016-08-25 06:31:25

啊..。所以你现在..。0-5,10-15,20-25或0-9

你有正确的想法,只是错误地应用了这个想法。

代码语言:javascript
运行
复制
([01]?[0-9]|2[0-5])

// should omit those pesky one-offs you're seeing as mentioned in the comments.
^([01]?[0-9]|2[0-5])$
\b([01]?[0-9]|2[0-5])\b

// if you also want to exclude 0...
^([1-9]|1[0-9]|2[0-5])$
\b([1-9]|1[0-9]|2[0-5])\b

这个比喻表示从0到19(w/或w/o )或20-25之间的任何数字。

票数 2
EN

Stack Overflow用户

发布于 2016-08-25 06:34:13

我会建议一些类似于(提取或删除我添加的一些元素,因为我不知道您的确切需求)。

代码语言:javascript
运行
复制
/^(([ 01]?[1-9])|2[0-5])$/
  • 用于匹配整个输入以避免匹配两位数字输入的单数的^...$
  • ?以允许一位数的输入。
  • 允许两个情况为“第一个数字=0或1”和“第一个数字= 2”的|

但是总的来说,确实有比regex更好的工具来完成这项工作,比如解析数字和做一个简单的比较。

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

https://stackoverflow.com/questions/39138073

复制
相关文章

相似问题

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