使用正则表达式匹配大于15的任何数字

时间:2018-10-08 10:48:09

标签: regex regex-group regex-greedy

我尝试使用以下正则表达式匹配大于15的任何数字:

0*[1-9][6-9][0-9]*

但是我只能匹配2位数字,例如。我可以成功取消匹配1213(小于15),而我无法匹配105124等。

任何人都可以帮助我解决该问题。

1 个答案:

答案 0 :(得分:4)

任何大于15的数字都是

  • 任何3位或更多位数且可能以0开头的数字

  • 具有2位数字的任何数字,其中字符类[2-9]中的第一位数字

  • 具有2位数字的任何数字,其中字符类[6-9]中第一位为1,第二位为

根据这三个规则,我们可以构建正则表达式,假设我们匹配的内容仅包含数字

/^0*(?:[1-9][0-9]{2,}|[2-9][0-9]|1[6-9])$/

如果您不能使用扩展的正则表达式,则可以使用以下内容

/^0*[1-9][0-9][0-9][0-9]*|0*[2-9][0-9]|0*1[6-9]$/