python中数值范围的正则表达式

sha*_*han 3 python regex

我需要找到“数字-数字”格式的数字范围。数字应在 0-3000 范围内。所以我想出了这个正则表达式

match = re.search(r'^[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]-[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]',sentence)
Run Code Online (Sandbox Code Playgroud)

当我运行该程序时,我只想提取句子中的 56-900,但该程序提取了其他数字,例如 2016、CLP2012 等。我只想提取中间有“-”的数字。我的模式有什么问题。

ASH*_*EEV 5

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

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

pip 安装正则表达式引擎

from regex_engine import generator

generate = generator()

regex = generate.numerical_range(0,3000)

print(regex)
Run Code Online (Sandbox Code Playgroud)

^([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-2][0-9][0- 9][0-9]|1[1-9][0-9][0-9]|10[1-9][0-9]|100[0-9]|300[0-0] )$

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

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)
Run Code Online (Sandbox Code Playgroud)