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

Тип regexp.Regexp

Тип regexp.Regexp представляет собой скомпилированное регулярное выражение, которое может быть использовано для выполнения различных операций с текстом. Объект этого типа создается с помощью функций regexp.Compile, regexp.MustCompile или их POSIX-аналогов. После компиляции регулярное выражение становится готовым к использованию и предоставляет методы для поиска совпадений, замены подстрок и разбиения строк.

Основное преимущество использования типа Regexp заключается в том, что компиляция происходит один раз, после чего методы могут быть вызваны многократно без потери производительности. Это делает его эффективным инструментом для обработки больших объемов текста.

Создание объекта Regexp

package main import ( "fmt" "regexp" ) func main() { // Компиляция регулярного выражения re, err := regexp.Compile(`\d+`) if err != nil { fmt.Println("Ошибка компиляции:", err) return } // Использование объекта res := re.MatchString("12345") fmt.Println(res) }

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

true

В этом примере мы компилируем регулярное выражение для поиска цифр и проверяем, соответствует ли строка этому выражению.

Метод MatchString - проверка соответствия

Метод MatchString проверяет, соответствует ли строка скомпилированному регулярному выражению. В первый параметр мы передаем строку для проверки. Метод возвращает true, если строка соответствует выражению, и false в противном случае.

package main import ( "fmt" "regexp" ) func main() { re := regexp.MustCompile(`^[A-Z][a-z]+$`) res := re.MatchString("Hello") fmt.Println(res) }

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

true

В этом примере мы проверяем, начинается ли строка с заглавной буквы и содержит ли только буквы в нижнем регистре после первой.

Метод FindString - поиск первого совпадения

Метод FindString находит первое совпадение с регулярным выражением в строке. В первый параметр мы передаем строку для поиска. Метод возвращает найденную подстроку или пустую строку, если совпадение не найдено.

package main import ( "fmt" "regexp" ) func main() { re := regexp.MustCompile(`\d+`) res := re.FindString("abc123def456") fmt.Println(res) }

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

"123"

Метод находит первую последовательность цифр в строке и возвращает ее.

Метод FindAllString - поиск всех совпадений

Метод FindAllString находит все совпадения с регулярным выражением в строке. В первый параметр мы передаем строку для поиска, во второй параметр - максимальное количество совпадений (если передать -1, то будут найдены все). Метод возвращает слайс найденных подстрок.

package main import ( "fmt" "regexp" ) func main() { re := regexp.MustCompile(`\d+`) res := re.FindAllString("abc123def456ghi789", -1) fmt.Println(res) }

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

[123 456 789]

Метод находит все последовательности цифр в строке и возвращает их в виде слайса.

Метод ReplaceAllString - замена всех совпадений

Метод ReplaceAllString заменяет все совпадения с регулярным выражением на указанную строку. В первый параметр мы передаем исходную строку, во второй параметр - строку замены. Метод возвращает новую строку с выполненными заменами.

package main import ( "fmt" "regexp" ) func main() { re := regexp.MustCompile(`\d+`) res := re.ReplaceAllString("abc123def456", "X") fmt.Println(res) }

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

"abcXdefX"

Все последовательности цифр заменяются на символ "X".

Метод Split - разбиение строки

Метод Split разбивает строку по совпадениям с регулярным выражением. В первый параметр мы передаем строку для разбиения, во второй параметр - максимальное количество частей (если передать -1, то строка будет разбита полностью). Метод возвращает слайс строк.

package main import ( "fmt" "regexp" ) func main() { re := regexp.MustCompile(`\d+`) res := re.Split("abc123def456ghi", -1) fmt.Println(res) }

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

[abc def ghi]

Строка разбивается по последовательностям цифр, которые удаляются из результата.

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

  • функцию regexp.Compile,
    которая компилирует регулярное выражение с возможностью обработки ошибок
  • функцию regexp.MustCompile,
    которая компилирует регулярное выражение с паникой при ошибке
  • метод Regexp.MatchString,
    который проверяет соответствие строки регулярному выражению
  • метод Regexp.FindAllString,
    который находит все совпадения в строке
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить