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

zdwk9cvp  于 2023-01-10  发布在  其他
关注(0)|答案(6)|浏览(89)

我想匹配2-16之间的数字,跨度为1位到2位。
Regular-Expressions.info has examples表示1位或2位数字范围,但不能同时包含这两个范围:
正则表达式[0-9]匹配0到9的一位数,[1-9][0-9]匹配10到99的两位数。
^[2-9][1-6]$这样的东西匹配21甚至96!任何帮助都将不胜感激。

13z8s7eq

13z8s7eq1#

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

将匹配2到9(含)之间的单个数字,或1后跟0到6(含)之间的数字。

nue99wik

nue99wik2#

带分隔符(习惯性):第一个月
正则表达式本身就是:^([2-9]|1[0-6])$

cfh9epnr

cfh9epnr3#

使用python包regex_engine为数值范围生成正则表达式

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

pip install regex-engine
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)
jhiyze9q

jhiyze9q4#

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

(**编辑:**删除引号以进行说明。)

vfhzx4xs

vfhzx4xs5#

只需将输入格式化程序替换为

inputFormatters: [
                    FilteringTextInputFormatter(
                      RegExp(
                          r'^([0-9]|[2-8][0-9]|1[0-9]|9[0-9]|[2-8][0-9][0-9]|1[1-9][0-9]|10[0-9]|9[0-8][0-9]|99[0-9]|[2-4][0-9][0-9][0-9]|1[1-9][0-9][0-9]|10[1-9][0-9]|100[0-9]|500[0-0])$'),
                      allow: true,
                    )
                  ],
aelbi1ox

aelbi1ox6#

(^[2-9]美元,|^1[0-6]$)
通过为每一组数字指定start和stop,您要查找的正则表达式不会返回36、46......等等。我尝试了上面的解决方案,发现这对于保持在2-16范围内效果最好。

相关问题