如何使用Python对JSON字符串进行模糊匹配并提取$包裹的参数
提取JSON字符串中被$包裹的内容
方法一:使用正则表达式(re模块)
这是最便捷的实现方式,通过正则匹配所有被$包裹的子串:
import re # 目标JSON字符串 json_str = '{"name":"$name$","age":"$age$", "country":"UK"}' # 提取包含$的完整匹配项 full_matches = re.findall(r'\$.*?\$', json_str) print(full_matches) # 输出: ['$name$', '$age$'] # 仅提取$中间的内容(去除$符号) content_matches = re.findall(r'\$(.*?)\$', json_str) print(content_matches) # 输出: ['name', 'age']
正则说明:
\$:转义匹配$符号($在正则中属于特殊元字符,需转义).*?:非贪婪模式匹配任意字符,避免将多个$包裹的内容合并为一个匹配项
方法二:字符串分割法(无需依赖re模块)
如果不想使用正则,也可以通过字符串分割实现:
json_str = '{"name":"$name$","age":"$age$", "country":"UK"}' # 用$分割字符串 split_parts = json_str.split('$') # 提取包含$的完整匹配项 full_matches = [f'${part}$' for part in split_parts[1::2]] print(full_matches) # 输出: ['$name$', '$age$'] # 仅提取$中间的内容 content_matches = split_parts[1::2] print(content_matches) # 输出: ['name', 'age']
原理说明:
用$分割字符串后,被$包裹的内容会出现在分割结果的奇数索引位置(从1开始),通过切片[1::2]即可筛选出目标内容,按需拼接$即可得到完整的包裹项。
内容的提问来源于stack exchange,提问作者Delevin Zhong
相关产品推荐
相关产品推荐

