为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
森栏 2022-05-18 09:35:07
我有如下代码t, err := template.New("todos").Parse("You have a task named \"{{ .Name}}\" with description: \"{{ .Description}}\"")Name在设置and的值之前Description,我必须检查行中定义的模板化变量是什么"You have a task named \"{{ .Name}}\" with description: \"{{ .Description}}\""。此行是用户定义的。所以,我不会事先知道模板变量是什么。不使用正则表达式的任何其他方式?
查看完整描述

1 回答

?
慕容森

TA贡献1853条经验 获得超18个赞

我可能会为此使用正则表达式,但您也可以使用解析结果来避免它,就像@Cerise Limón说的那样。解决方案可能看起来像这样。


package main


import (

    "log"

    "text/template"

    "text/template/parse"

)


func main() {


    t, err := template.New("todos").Parse("You have a task named \"{{ .Name}}\" with description: \"{{ .Description}}\"")

    if err != nil {

        panic(err)

    }

    for _, node := range t.Root.Nodes {

        if (node.Type() == parse.NodeAction) {

            log.Println(node.String())

        }

    }

}


查看完整回答
反对 回复 2022-05-18
  • 1 回答
  • 0 关注
  • 109 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信