You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python 3.5提取字符串中每个冒号后的数字

提取冒号后的数字(Python 3.5)

嘿,我懂你要的效果——只抓每个冒号:后面紧跟的数字,而不是字符串里所有零散的数字对吧?之前的方法应该是没精准锁定冒号这个前置条件,那咱们用正则表达式来搞定这个需求,Python 3.5完全支持哦。

核心思路

用正则匹配冒号+数字的模式,只捕获冒号后面的数字部分。这里分两种常见情况:

情况1:只提取整数

如果你的字符串里冒号后都是整数(比如id:123, count:45),可以用这个代码:

import re

# 替换成你实际的输入字符串
your_str = "order:789, product:1024, quantity:5"
# 正则规则:匹配冒号,然后捕获后面的一个或多个数字
nums_after_colon = re.findall(r':(\d+)', your_str)
# 可选:把字符串转成整数类型
result = [int(num) for num in nums_after_colon]
print(result)  # 输出: [789, 1024, 5]

情况2:需要提取小数(比如价格、评分)

如果冒号后可能有小数(比如price:99.9, rating:4.5),调整正则规则即可:

import re

your_str = "price:99.9, rating:4.5, discount:0.2"
# 匹配整数或小数:\d+匹配整数部分,\.?匹配可选的小数点,\d*匹配可选的小数部分
nums_after_colon = re.findall(r':(\d+\.?\d*)', your_str)
# 转成浮点数类型
result = [float(num) for num in nums_after_colon]
print(result)  # 输出: [99.9, 4.5, 0.2]

为什么之前的方法不对?

如果之前用了re.findall(r'\d+', your_str),那会把字符串里所有数字都抓出来,不管是不是在冒号后面。而咱们上面的正则通过:锁定了前置条件,只捕获冒号后面的数字组,就精准符合你的需求啦。

内容的提问来源于stack exchange,提问作者Yogesh Anand

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 07:06:13