Golang正则表达式替换字符串之间
我有以下几种可能的形式的字符串:
MYSTRING=${MYSTRING}\nMYSTRING=\n
MYSTRING=randomstringwithvariablelength\n
我希望能够将它正则化为MYSTRING=foo
,基本上替换MYSTRING=
和之间的所有内容\n
。我试过了:
re := regexp.MustCompile("MYSTRING=*\n")s = re.ReplaceAllString(s, "foo")
但这是行不通的。任何帮助表示赞赏。
PS \n
表示有一个换行符用于此目的。实际上不在那里。
回答:
您可以使用
(MYSTRING=).*
并替换为${1}foo
。请参阅在线Go regex演示。
在这里,(MYSTRING=).*
匹配并捕获MYSTRING=
子字符串(${1}
它将从替换模式中引用此值),.*
并将匹配并消耗除换行符以外的任何0+字符,直至行尾。
参见Go演示:
package mainimport (
"fmt"
"regexp"
)
const sample = `MYSTRING=${MYSTRING}
MYSTRING=
MYSTRING=randomstringwithvariablelength
`
func main() {
var re = regexp.MustCompile(`(MYSTRING=).*`)
s := re.ReplaceAllString(sample, `${1}foo`)
fmt.Println(s)
}
输出:
MYSTRING=fooMYSTRING=foo
MYSTRING=foo
以上是 Golang正则表达式替换字符串之间 的全部内容, 来源链接: utcz.com/qa/433359.html