Многострочность в Go
Без флага якоря привязаны к всей строке целиком. Префикс (?m) включает режим, где каретка и доллар работают по строкам текста.
Найдем слово в начале каждой строки:
package main
import (
"fmt"
"regexp"
)
func main() {
re := regexp.MustCompile(`(?m)^line`)
txt := "line one\nline two\nother"
fmt.Println(re.FindAllString(txt, -1))
}
Дана строка:
txt := "a\nb\nc"
С флагом (?m) найдите буквы в начале строк.
Дана строка:
txt := "end\nnot"
Привяжите образец к концу первой строки.
Дана строка:
txt := "x\ny\nz"
Скажите, сколько совпадений даст (?m)^x.