你可以用regexp来模拟:

re := regexp.MustCompile("(?m)[\r\n]+^.*substring.*$")
res := re.ReplaceAllString(s, "")
"(?m)^.*" +substr+ ".*$[\r\n]+"
func main() {
    s := `aaaaa
bbbb
cc substring ddd
eeee
ffff`
    re := regexp.MustCompile("(?m)[\r\n]+^.*substring.*$")
    res := re.ReplaceAllString(s, "")
    fmt.Println(res)
}

输出:

aaaaa
bbbb
eeee
ffff

请注意使用正则表达式标志(?m) :

^$