gpt4 book ai didi

python - 版本号 (vX.X.X) 的正则表达式不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 08:43:59 28 4
gpt4 key购买 nike

我正在尝试检查包含正确格式版本号的输入字符串。

vX.X.X

其中 X 可以是任意数量的数字,例如:

v1.32.12   or  v0.2.2   or v1232.321.23

我有以下正则表达式:

v([\d.][\d.])([\d])

这行不通。

我的错误在哪里?

编辑:我还要求字符串的最大长度为 20 个字符,有没有办法通过正则表达式做到这一点,或者最好只使用常规的 Python len()

最佳答案

请注意,[\d.] 应匹配任何一个字符,无论是数字还是点。

v(\d+)\.(\d+)\.\d+

使用\d+匹配一个或多个数字字符。

示例:

>>> import re
>>> s = ['v1.32.12', 'v0.2.2' , 'v1232.321.23', 'v1.2.434312543898765']
>>> [i for i in s if re.match(r'^(?!.{20})v(\d+)\.(\d+)\.\d+$', i)]
['v1.32.12', 'v0.2.2', 'v1232.321.23']
>>>

(?!.{20}) 开始时的负先行检查匹配前的字符串长度。如果字符串长度至少为 20,那么它会立即失败,而不会对该特定字符串进行匹配。

关于python - 版本号 (vX.X.X) 的正则表达式不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42390661/

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