使用regex-replace将文本添加到多行字符串中每行的开头



我试图在每行的开头添加一个特定的文本。我使用^正则表达式运算符来查找每一行的开头。但是,我只能替换多行字符串的第一行。我做错了什么?

Exampe代码:

str := `This is a
multiline
string.`
var regexPattern = regexp.MustCompile("^")
s := regexPattern.ReplaceAllString(str, "START OF LINE")
fmt.Println(s)

输出:

START OF LINEThis is a
multiline
string.

您可以使用多行标志(?m)将克拉^的行为从"匹配字符串的开头"更改为"匹配行的开头":

package main
import "fmt"
import "regexp"
func main() {
str := `This is a
multiline
string.`
var regexPattern = regexp.MustCompile(`(?m)^`)
s := regexPattern.ReplaceAllString(str, "START OF LINE")
fmt.Println(s)    
}

输出:

START OF LINEThis is a
START OF LINE            multiline
START OF LINE            string.

当然,看起来很有趣的输出是您如何创建多行字符串的产物。如果你想占用前导空格,你可以使用(?m)^s*

START OF LINEThis is a
START OF LINEmultiline
START OF LINEstring.

最新更新