Golang正则表达式替换字符串之间

我有以下几种可能的形式的字符串:

MYSTRING=${MYSTRING}\n

MYSTRING=\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 main

import (

"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=foo

MYSTRING=foo

MYSTRING=foo

以上是 Golang正则表达式替换字符串之间 的全部内容, 来源链接: utcz.com/qa/433359.html

回到顶部