Функция regexp.MatchReader

Функция regexp.MatchReader проверяет, соответствует ли содержимое объекта, реализующего интерфейс io.RuneReader, указанному регулярному выражению. Она возвращает true, если содержимое соответствует регулярному выражению, и false в противном случае. Первым параметром функция принимает строку с регулярным выражением, вторым - объект типа io.RuneReader, содержимое которого нужно проверить.

Синтаксис

goregexp.MatchReader(pattern, reader)

Пример

Давайте проверим, соответствует ли содержимое ридера строке "abcde" регулярному выражению "^abc":

gopackage main

import (
  "fmt"
  "regexp"
  "strings"
)

func main() {
  reader := strings.NewReader("abcde")
  res, err := regexp.MatchReader("^abc", reader)
  if err != nil {
    fmt.Println("Error:", err)
    return
  }
  fmt.Println(res)
}

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

gotrue

Пример

Давайте проверим, соответствует ли содержимое ридера строке "12345" регулярному выражению "[0-9]+":

gopackage main

import (
  "fmt"
  "regexp"
  "strings"
)

func main() {
  reader := strings.NewReader("12345")
  res, err := regexp.MatchReader("[0-9]+", reader)
  if err != nil {
    fmt.Println("Error:", err)
    return
  }
  fmt.Println(res)
}

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

gotrue

Пример

Давайте проверим, соответствует ли содержимое ридера строке "abcde" регулярному выражению "^xyz":

gopackage main

import (
  "fmt"
  "regexp"
  "strings"
)

func main() {
  reader := strings.NewReader("abcde")
  res, err := regexp.MatchReader("^xyz", reader)
  if err != nil {
    fmt.Println("Error:", err)
    return
  }
  fmt.Println(res)
}

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

gofalse

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

  • функцию regexp.Match,
    которая проверяет соответствие для среза байтов
  • функцию regexp.MatchString,
    которая проверяет соответствие для строки
  • функцию regexp.Compile,
    которая компилирует регулярное выражение
  • функцию regexp.MustCompile,
    которая компилирует регулярное выражение с паникой при ошибке