正则表达式 - 范围(2-16)?

时间:2010-08-10 16:53:38

标签: regex

我想做的就是匹配2-16之间的数字,跨越1位数到2位

根据http://www.regular-expressions.info/numericranges.html,他们有1或2位数范围的例子,但不是跨越两者的例子......如果有意义的话。

The regex [0-9] matches single-digit numbers 0 to 9. [1-9][0-9] matches double-digit numbers 10 to 99.

“^ [2-9] [1-6] $”匹配21或甚至96 lol。任何帮助将不胜感激。

5 个答案:

答案 0 :(得分:36)

^([2-9]|1[0-6])$

将匹配2到9之间的单个数字,或者1之后是0到6之间的数字,包括0和6之间的数字。

答案 1 :(得分:7)

使用分隔符(出于习惯):/^([2-9]|1[0-6])$/

正则表达式本身就是:^([2-9]|1[0-6])$

答案 2 :(得分:1)

^([2-9]|1[0-6])$

编辑:删除了引号以便澄清。)

答案 3 :(得分:1)

使用python软件包regex_engine生成数字范围的正则表达式

您可以使用pip安装此软件包

  

pip安装正则表达式引擎

from regex_engine import generator

generate = generator()

regex = generate.numerical_range(2,16)

print(regex)
  

^([2-9] | 1 [0-6])$

您还可以为浮点数和负范围生成正则表达式

from regex_engine import generator

generate = generator()

regex1 = generate.numerical_range(5,89)
regex2 = generate.numerical_range(81.78,250.23)
regex3 = generate.numerical_range(-65,12)

答案 4 :(得分:-1)

(^ [2-9] $ | ^ 1 [0-6] $)

通过为每组数字指定开始和停止,您正在寻找的正则表达式也不会返回36,46,......等等。我尝试了上述解决方案,发现这最适合保持在2-16范围内。