Python脚本实现Mandrill转Mustache语法:mc:edit标签替换问题求助
解决mc:edit批量转换为Mustache语法的问题
直接用正则表达式精准匹配替换,既能一次性处理所有mc:edit="xxx"实例,还不会误修改普通引号。
修正后的代码
import re original_text = 'font mc:edit="OrderReceiveDate" blah blah this is a test so i do not know what to "really" do bbbecause i am just writing this "OrderReceiveDate" mc:edit="OrderReceiveDate"' # 匹配mc:edit="xxx"格式,捕获引号内内容并替换为Mustache语法 replacement_text = re.sub(r'mc:edit="([^"]+)"', r'{{\1}}', original_text) print(replacement_text)
正确输出结果
font {{OrderReceiveDate}} blah blah this is a test so i do not know what to "really" do bbbecause i am just writing this "OrderReceiveDate" {{OrderReceiveDate}}
原理说明
- 正则规则
r'mc:edit="([^"]+)"':mc:edit="精准定位Mandrill标签的开头([^"]+)捕获引号内的所有非引号字符(即需要保留的变量名)"匹配标签结尾的引号
- 替换模板
r'{{\1}}':\1对应正则捕获到的变量名,最终拼接成Mustache的{{变量名}}格式
不管有多少个mc:edit实例,都能一次性完成正确转换,普通引号完全不受影响。
内容的提问来源于stack exchange,提问作者Lotus
相关产品推荐
相关产品推荐

