Skip to main content
 首页 » 编程设计

python之python中数字范围的正则表达式

2025年01月19日5jirigala

我需要找到格式为“数字-数字”的数字范围。该数字应在 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) 

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

请您参考如下方法:

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

你可以使用pip安装这个包

pip install regex-engine

from regex_engine import generator 
 
generate = generator() 
 
regex = generate.numerical_range(0,3000) 
 
print(regex) 

^([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])$

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

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)