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

标签 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)

当我运行程序时,我只想提取句子中的 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)

关于python - python中数字范围的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46642268/

相关文章:

python - Pandas:如果不同的给定列重复,如何组合列 int 值?

Python NEAT 在某一点之后不再进一步学习

.net - 我可以在 XPath 表达式中使用 Regex 吗?

c# - 匹配 HTML id 的正则表达式

javascript - 替换所有没有正则表达式我可以在哪里使用 G

javascript - 将 sum(something) 的出现次数更改为 Something_sum

python - 为什么 setattr 对属性和方法的作用不同?

python - 使用正则表达式查找并替换每个匹配的任意数量的元素

python - 无法从 PyDev 中的依赖项目导入模块

Python正则表达式问题