Метод Regexp.FindAll
Метод Regexp.FindAll выполняет поиск всех непересекающихся совпадений
с регулярным выражением в строке и возвращает их в виде слайса
[][]byte. В первый параметр передается строка для поиска в виде
[]byte, во второй параметр передается максимальное количество
совпадений, которое нужно найти. Если передать -1, метод найдет
все совпадения.
Синтаксис
re.FindAll(text, n)
Пример
Давайте найдем все последовательности цифр в строке:
package main
import (
"fmt"
"regexp"
)
func main() {
re := regexp.MustCompile(`\d+`)
res := re.FindAll([]byte("abc123def456ghi789"), -1)
fmt.Println(res)
}
Результат выполнения кода:
[[49 50 51] [52 53 54] [55 56 57]]
Пример
Давайте найдем только первые два совпадения с буквами:
package main
import (
"fmt"
"regexp"
)
func main() {
re := regexp.MustCompile(`[a-z]+`)
res := re.FindAll([]byte("abc123def456ghi"), 2)
fmt.Println(res)
}
Результат выполнения кода:
[[97 98 99] [100 101 102]]
Пример
Давайте проверим случай, когда совпадений нет:
package main
import (
"fmt"
"regexp"
)
func main() {
re := regexp.MustCompile(`\d+`)
res := re.FindAll([]byte("abcdef"), -1)
fmt.Println(res)
}
Результат выполнения кода:
[]
Смотрите также
-
метод
Regexp.Find,
который находит только первое совпадение -
метод
Regexp.FindAllString,
который возвращает совпадения в виде слайса строк -
метод
Regexp.FindAllSubmatch,
который возвращает совпадения с подвыражениями -
метод
Regexp.Match,
который проверяет наличие совпадения