gpt4 book ai didi

python - 将版本号表示为正则表达式

转载 作者:太空狗 更新时间:2023-10-30 02:13:26 24 4
gpt4 key购买 nike

我需要将版本号表示为正则表达式。广义的定义是

  1. 仅由数字组成
  2. 允许任意数量的小数点(但不是连续的)
  3. 没有最大数量限制

所以 2.3.4.1,2.3,2,9999.9999.9999 都是有效的,而 2..,2.3. 不是。

我写了以下简单的正则表达式

'(\d+\.{0,1})+'

在 python 中使用 re模块并在“2.6.31”中搜索给出

>>> y = re.match(r'(\d+\.{0,1})+$','2.6.31')
>>> y.group(0)
'2.6.31'
>>> y.group(1)
'31'

但是如果我给组命名,那么命名的组只有31个。

我的正则表达式表示是否正确或是否可以调整/改进?它目前不处理 2.3. 案例。

最佳答案

符号 {0,1} 可以简化为 ?:

r'(\d+\.?)+$'

但是,上面的代码将允许尾随 .。也许尝试:

r'\d+(\.\d+)*$'

一旦您确认格式符合您的预期,获取数字的最简单方法是使用 re.findall():

>>> ver = "1.2.3.4"
>>> re.findall(r'\d+', ver)
['1', '2', '3', '4']

关于python - 将版本号表示为正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8816302/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com