如何从包含英镑价格区间的字符串中高效提取最大值与最小值?
价格区间字符串提取最大最小数值方案
核心思路
所有有效价格数值均以£为固定前缀,无需处理复杂的分隔符、区间描述文本,直接通过正则提取所有£后的数字,再计算最大最小值即可,时间复杂度为O(n),效率极高。
实现代码(Python示例)
import re # 输入的价格字符串 price_str = "£25 - £30More than £30£20 - £25£20 - £25, More than £30, £25 - £30, £15 - £20, Up to £15£15 - £20" # 正则匹配所有£后的数字,转换为整数列表 price_list = list(map(int, re.findall(r'£(\d+)', price_str))) # 计算最大最小值 min_price = min(price_list) max_price = max(price_list) print(f"最小数值:£{min_price}") print(f"最大数值:£{max_price}")
运行结果
最小数值:£15 最大数值:£30
扩展说明
- 如果存在小数价格(例如
£19.99),只需将正则修改为r'£(\d+\.?\d*)',同时将转换类型替换为float即可。 - 如果需要处理「More than £30」代表无上限、「Up to £15」代表无下限的业务规则,可以进一步扩展正则匹配前缀描述,按需调整计算逻辑即可。
内容的提问来源于stack exchange,提问作者HenryM
相关产品推荐
相关产品推荐

