package utils
import (
"fmt"
"regexp"
"strings"
)
func FilterEnv(s string, env map[string]interface{}) string {
reg := regexp.MustCompile("\\$\\{(.+?)\\}")
var getVal = func(key string) interface{} {
val, ok := env[key]
if ok {
return val
}
return ""
}
keys := reg.FindAllStringSubmatch(s, -1)
tmp := s
for _, key := range keys {
tmp = strings.Replace(tmp, fmt.Sprintf("${%s}", key[1]), fmt.Sprintf("%v", getVal(key[1])), -1)
}
if tmp == "" {
return s
}
return tmp
}
go 正则的使用
最新推荐文章于 2025-07-02 10:45:45 发布