如何检查一行或字符串是否包含Golang中要模板化的变量?

如何检查一行或字符串是否包含Golang中要模板化的变量?,go,templating,Go,Templating,我有如下代码 t, err := template.New("todos").Parse("You have a task named \"{{ .Name}}\" with description: \"{{ .Description}}\"") 在设置Name和Description的值之前,我必须检查行中定义的模板变量是什么,您有一个任务名为\“{.Name}”,描述为:\“{.Description}\”。这一行是用户定义的。所以,我不知道之前的模板变量是什么 没有使用Regex还有其

我有如下代码

t, err := template.New("todos").Parse("You have a task named \"{{ .Name}}\" with description: \"{{ .Description}}\"")
在设置
Name
Description
的值之前,我必须检查
行中定义的模板变量是什么,您有一个任务名为\“{.Name}”,描述为:\“{.Description}\”
。这一行是用户定义的。所以,我不知道之前的模板变量是什么

没有使用Regex还有其他方法吗


谢谢

我可能会使用正则表达式,但您也可以使用解析结果来避免它,如前所述。解决方案可能是这样的

主程序包
进口(
“日志”
“文本/模板”
“文本/模板/解析”
)
func main(){
t、 err:=template.New(“todos”).Parse(“您有一个名为\“{.Name}}\”的任务,其描述为:\“{{.description}}\”)
如果错误!=零{
恐慌(错误)
}
对于u,节点:=范围t.Root.Nodes{
if(node.Type()==parse.NodeAction){
log.Println(node.String())
}
}
}

模板可用于查找字段引用。可能重复:。但您不应依赖此类内容来为模板执行提供输入。您必须知道要执行的模板及其所需的数据。你不应该在运行时“探索”它来为它提供参数。谢谢你,简。同意我们可以使用正则表达式,但只是检查是否有可用的东西