Замена функцией в Go
Команда замены с функцией получает найденный фрагмент и возвращает, на что его менять. Так удобно менять регистр или подставлять вычисленное значение.
Удвоим числа:
package main
import (
"fmt"
"regexp"
)
func main() {
re := regexp.MustCompile(`\d+`)
txt := "a2b10"
res := re.ReplaceAllStringFunc(txt, func(s string) string {
return s + s
})
fmt.Println(res)
}
Дана строка:
txt := "aa bb"
Замените каждое слово его длиной в виде цифры.
Дана строка:
txt := "Ab"
Переведите буквы в верхний регистр в функции.
Дана строка:
txt := "x1y2"
Скажите, сколько раз вызовется функция.