РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
437 of 1593 menu

regexp.Regexp.ReplaceAllLiteral

Метод regexp.Regexp.ReplaceAllLiteral выполняет замену всех найденных совпадений с регулярным выражением на указанную литеральную строку. Первым параметром метод принимает исходный байтовый срез []byte, в котором производится поиск. Вторым параметром передается байтовый срез []byte с литеральной строкой замены. В отличие от метода ReplaceAll, метод ReplaceAllLiteral не интерпретирует специальные последовательности в строке замены, такие как $1 или $name, и вставляет их как обычные символы. Метод возвращает новый байтовый срез []byte с выполненными заменами, оставляя исходный срез неизменным.

Синтаксис

re.ReplaceAllLiteral(src, repl []byte) []byte

Пример

Давайте заменим все цифры в строке на литеральную строку '[digit]':

package main import ( "fmt" "regexp" ) func main() { re := regexp.MustCompile(`\d+`) src := []byte("abc123def456ghi") res := re.ReplaceAllLiteral(src, []byte("[digit]")) fmt.Println(string(res)) }

Результат выполнения кода:

"abc[digit]def[digit]ghi"

Пример

Давайте посмотрим, как метод ReplaceAllLiteral отличается от ReplaceAll при использовании шаблонов подстановки:

package main import ( "fmt" "regexp" ) func main() { re := regexp.MustCompile(`(\d+)-(\d+)`) src := []byte("12-34") resLiteral := re.ReplaceAllLiteral(src, []byte("$1-$2")) resAll := re.ReplaceAll(src, []byte("$1-$2")) fmt.Printf("ReplaceAllLiteral: %s\n", resLiteral) fmt.Printf("ReplaceAll: %s\n", resAll) }

Результат выполнения кода:

"ReplaceAllLiteral: $1-$2" "ReplaceAll: 12-34"

Пример

Давайте заменим все email адреса в строке на литеральную строку '[email]':

package main import ( "fmt" "regexp" ) func main() { re := regexp.MustCompile(`\w+@\w+\.\w+`) src := []byte("Contact: user@example.com and admin@test.org") res := re.ReplaceAllLiteral(src, []byte("[email]")) fmt.Println(string(res)) }

Результат выполнения кода:

"Contact: [email] and [email]"

Смотрите также

Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить