regexp.Regexp.ReplaceAllLiteralString
Метод Regexp.ReplaceAllLiteralString выполняет замену всех найденных совпадений с регулярным выражением на строку замены. В отличие от метода ReplaceAllString, данный метод не интерпретирует специальные конструкции в строке замены, такие как $1 или ${name}. Это означает, что строка замены вставляется буквально, без каких-либо подстановок из найденного совпадения. Первым параметром метод принимает исходную строку, вторым - строку замены, которая будет вставлена вместо каждого совпадения.
Синтаксис
re.ReplaceAllLiteralString(src, repl)
Пример
Давайте заменим все цифры в строке на символ '#':
package main
import (
"fmt"
"regexp"
)
func main() {
re := regexp.MustCompile(`\d`)
src := "a1b2c3d4e5"
res := re.ReplaceAllLiteralString(src, "#")
fmt.Println(res)
}
Результат выполнения кода:
"a#b#c#d#e#"
Пример
Давайте заменим все слова на строку 'TEXT':
package main
import (
"fmt"
"regexp"
)
func main() {
re := regexp.MustCompile(`[a-z]+`)
src := "hello world from go"
res := re.ReplaceAllLiteralString(src, "TEXT")
fmt.Println(res)
}
Результат выполнения кода:
"TEXT TEXT TEXT TEXT"
Пример
Важное отличие от ReplaceAllString - отсутствие интерпретации шаблонов замены:
package main
import (
"fmt"
"regexp"
)
func main() {
re := regexp.MustCompile(`(\w+)@(\w+)\.(\w+)`)
src := "contact: user@example.com"
// ReplaceAllLiteralString не интерпретирует $1, $2, $3
resLiteral := re.ReplaceAllLiteralString(src, "$1 at $2 dot $3")
// ReplaceAllString интерпретирует шаблоны
resString := re.ReplaceAllString(src, "$1 at $2 dot $3")
fmt.Println("Literal:", resLiteral)
fmt.Println("String: ", resString)
}
Результат выполнения кода:
"Literal: $1 at $2 dot $3"
"String: user at example dot com"
Смотрите также
-
метод
Regexp.ReplaceAllString,
который выполняет замену с интерпретацией шаблонов -
метод
Regexp.ReplaceAllLiteral,
который делает то же самое, но работает с байтовыми срезами -
метод
Regexp.ReplaceAll,
который выполняет замену с интерпретацией для байтовых срезов -
метод
Regexp.ReplaceAllFunc,
который позволяет использовать функцию для генерации строки замены