Вы можете использовать многострочный флаг (?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.