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

Python正则匹配以price开头currency结尾的独立子串问题

解决贪婪匹配问题的Python正则方案

问题根源是正则默认的贪婪匹配行为,会从第一个"price"匹配到最后一个"currency",改成非贪婪匹配即可解决。

正确正则表达式

import re

# 匹配以"price"开头、"currency"结尾的独立子串
pattern = r'"price":.*?"currency":".*?"'
# 从目标字符串中提取所有匹配项
matches = re.findall(pattern, your_parsed_string)

关键说明

  • .*?:非贪婪匹配模式,会尽可能匹配最短的符合条件的内容,确保每个"price"对应最近的"currency",不会跨块匹配
  • 如果目标字符串包含换行符,需要添加re.DOTALL参数让.匹配换行:
    matches = re.findall(pattern, your_parsed_string, re.DOTALL)
    

示例验证

假设目标字符串为:

"price": 123,"description":"ice-cream","currency":"CAD","price": 456,"description":"cake","currency":"USD"

执行后会得到两个独立的匹配结果:

  1. "price": 123,"description":"ice-cream","currency":"CAD"
  2. "price": 456,"description":"cake","currency":"USD"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 04:18:13