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

如何在Python中使用Regex提取字符串中的唯一数值(含小数、连字符)

提取唯一数字、小数及连字符的解决方案

你的问题核心是原正则仅过滤非目标字符,但无法处理重复值。要得到唯一的数字范围,可通过提取目标片段→去重→整理格式三步实现:

方法思路

  1. 先提取所有整数、小数片段;
  2. 对提取结果去重,剔除重复值;
  3. 将去重后的数字按顺序拼接成期望的范围格式。

完整代码实现

import re

check = "Desirable: < 200 Borderline HIgh: 200 - 240 High: > 240"
# 提取所有整数/小数(支持带小数点的数值)
nums = re.findall(r'\d+\.?\d*', check)
# 转成浮点数去重,再按数值大小排序
unique_nums = sorted(list(set(map(float, nums))))
# 格式转换:整数转为无小数点的字符串,小数保留原格式
unique_nums_str = []
for num in unique_nums:
    if num.is_integer():
        unique_nums_str.append(str(int(num)))
    else:
        unique_nums_str.append(str(num))
# 拼接成最终结果
result = '-'.join(unique_nums_str)

print(result)  # 输出:200-240

适配小数场景测试

如果输入字符串包含小数,比如:

check = "Desirable: < 199.5 Borderline HIgh: 199.5 - 240.5 High: > 240.5"

运行代码后会输出:199.5-240.5,完全符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 00:48:13