Python中如何用正则表达式结合字典生成目标字符串?
从字典生成指定格式字符串的正确方法
你用re.sub是搞反了方向——这个方法是用来匹配已有文本里的模式并替换内容的,而你现在是要从字典数据生成符合正则格式的新字符串,直接用字符串格式化就够了,下面是几种实用的实现方式:
1. f-string格式化(推荐,Python 3.6+)
这是最简洁直观的写法,直接把字典中的值嵌入格式串:
params = {'year': '2024', 'month': '01', 'day': '01'} output_str = f"{params['year']}_{params['month']}_{params['day']}" # 结果:'2024_01_01'
2. str.format()方法(兼容低版本Python)
如果你的Python版本低于3.6,用format配合字典解包也能实现:
params = {'year': '2024', 'month': '01', 'day': '01'} output_str = "{year}_{month}_{day}".format(**params) # 结果:'2024_01_01'
3. 基础字符串拼接
如果不需要灵活调整格式,直接拼接字符串也可以:
params = {'year': '2024', 'month': '01', 'day': '01'} output_str = params['year'] + '_' + params['month'] + '_' + params['day'] # 结果:'2024_01_01'
总结下:你的需求是生成符合格式的新字符串,而re.sub是修改已有字符串,两者场景完全不同,用字符串格式化才是最匹配的方案。
内容的提问来源于stack exchange,提问作者Anish Kumar Kharwar
相关产品推荐
相关产品推荐

