本文目录导读:

- 基础:字符串替换(最直接,适合所有语言)
- 标准化:使用模板引擎(推荐,功能强大,防XSS)
- 专业人士:AI提示词中的模板变量(如ChatGPT、Claude)
- 高效技能:正则表达式批量提取与替换
- 特殊场景:Excel / 邮件合并 / 代码配置
- 总结建议
编写填充文案模板变量,核心在于定义变量占位符与编写替换逻辑,根据使用场景不同(如纯文本、代码、配置、AI提示词),实现方式也不同。
以下是几种最常用的实现方式:
基础:字符串替换(最直接,适合所有语言)
这是最原始但最通用的方法,定义好占位符,然后逐一或批量替换。
占位符风格: {变量名}、{{变量名}}、$变量名$、%变量名%
伪代码示例(逻辑通用):
模板: "尊敬的{客户姓名},您的订单{订单号}已发货,预计{送达时间}到达。"
变量: { "客户姓名": "张三", "订单号": "OD123456", "送达时间": "明天下午" }
结果 = 模板.replace("{客户姓名}", "张三")
.replace("{订单号}", "OD123456")
.replace("{送达时间}", "明天下午")
优点: 零依赖,运行速度快。 缺点: 当模板变量很多时,代码会冗长;容易出错(忘记替换某个变量会留下原始占位符)。
标准化:使用模板引擎(推荐,功能强大,防XSS)
在实际开发或文案系统里,通常使用现成的模板引擎,它们支持循环、条件判断、自动转义HTML。
Python (Jinja2 / Django Template)
from jinja2 import Template
# 1. 定义模板(使用 {{ }} 语法)
template_str = "您好,{{ name }}!您的验证码是 **{{ code }}**,有效期{{ expire_min }}分钟。"
template = Template(template_str)
# 2. 传入变量(字典)
data = {"name": "Alice", "code": "8888", "expire_min": 5}
# 3. 渲染
output = template.render(data)
print(output)
# 输出:您好,Alice!您的验证码是 **8888**,有效期5分钟。
JavaScript (ES6 模板字符串 / Handlebars)
// ES6 模板字符串(需要动态创建,不太安全,但简单)
let name = "Bob";
let code = "1234";
let output = `您好,${name}!您的验证码是 ${code}。`; // 直接写死变量
// 更推荐:第三方库 Handlebars
const Handlebars = require('handlebars');
let source = "您好,{{name}}!您的验证码是 {{code}}。";
let template = Handlebars.compile(source);
let result = template({ name: "Charlie", code: "5678" });
console.log(result);
Java (Thymeleaf / FreeMarker)
// 使用 FreeMarker
Configuration cfg = new Configuration(Configuration.VERSION_2_3_32);
Template template = new Template("name", "欢迎 ${user}!", new StringReader(""), cfg);
Map<String, Object> data = new HashMap<>();
data.put("user", "Admin");
Writer out = new StringWriter();
template.process(data, out);
System.out.println(out.toString());
专业人士:AI提示词中的模板变量(如ChatGPT、Claude)
在与AI交互时,模板变量需要语义清晰,且通常建议用双层大括号避免被AI误解。
推荐格式:
系统指令:
你是一个招聘文案生成器,请根据以下模板生成文案:
“【急招】我们正在寻找一位{{岗位名称}},要求{{工作经验}},工作地点在{{城市}}。”
用户输入:
请使用以下信息填充模板:
- 岗位名称 = 高级前端工程师
- 工作经验 = 3年以上React开发经验
- 城市 = 上海
注意:请直接将模板中的变量替换为实际内容,不要解释过程,只输出最终文案。
为什么用 ?
- 视觉上区别于Markdown()、代码()。
- 容易通过
Regex: \{\{(.*?)\}\}正则提取变量名。
高效技能:正则表达式批量提取与替换
当你有一堆模板,或者不知道模板里有哪些变量时,用正则来自动发现并替换。
Python 示例:
import re
template = "亲爱的{姓名},您的{业务类型}已办理成功,请于{日期}前确认。"
data = {"姓名": "赵六", "业务类型": "信用卡", "日期": "2024-08-15"}
# 使用正则替换,自动匹配 {} 内的内容
def replace_var(match):
var_name = match.group(1) # 提取变量名
return data.get(var_name, match.group(0)) # 如果找不到,保留原样
output = re.sub(r'\{(\w+)\}', replace_var, template)
print(output)
# 输出:亲爱的赵六,您的信用卡已办理成功,请于2024-08-15前确认。
特殊场景:Excel / 邮件合并 / 代码配置
- Excel(Word邮件合并): 使用
<<字段名>>作为占位符,数据源选Excel表。 - 配置文件(YAML/Toml): 用
$VAR_NAME或{VAR_NAME},配合os.environ读取。 - 数据库模板: 直接在SQL里加 或
name(PreparedStatement)。
总结建议
| 场景 | 推荐方法 | 占位符语法 |
|---|---|---|
| 简单替换(新手/快速脚本) | str.replace() 或 正则 |
{var} |
| Web开发 / 后端逻辑 | Jinja2 (Python) / Handlebars (JS) / Thymeleaf (Java) | {{ var }} |
| AI提示词工程 | 明确标记,使用双层大括号 | {{ var }} |
| 配置文件/环境变量 | $VAR 或 {VAR} |
$VAR |
最佳实践:
- 统一风格: 整个项目或文档库只用一种占位符(推荐
{{变量名}})。 - 防遗漏: 替换后检查字符串中是否还有残留的 或 。
- 日志: 在填充前打印模板和变量字典,方便调试。
- 安全: 如果模板来自用户输入,不要使用
eval()或new Function()直接执行,应使用模板引擎自带的转义功能(防止XSS)。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播