Метод regexp.Regexp.FindAllString
Метод regexp.Regexp.FindAllString выполняет поиск всех непересекающихся совпадений
с регулярным выражением в переданной строке и возвращает их в виде слайса строк.
В первый параметр метод принимает строку для поиска, во второй параметр -
максимальное количество совпадений, которое нужно найти.
Если передать -1, метод вернет все найденные совпадения.
Синтаксис
regexp.Regexp.FindAllString(s, n)
Пример
Давайте найдем все числа в строке "abc123def456ghi789"
с помощью регулярного выражения \d+:
package main
import (
"fmt"
"regexp"
)
func main() {
re := regexp.MustCompile(`\d+`)
res := re.FindAllString("abc123def456ghi789", -1)
fmt.Println(res)
}
Результат выполнения кода:
[123 456 789]
Пример
Давайте найдем только первые два числа в строке, передав
во второй параметр значение 2:
package main
import (
"fmt"
"regexp"
)
func main() {
re := regexp.MustCompile(`\d+`)
res := re.FindAllString("abc123def456ghi789", 2)
fmt.Println(res)
}
Результат выполнения кода:
[123 456]
Пример
Давайте найдем все слова в строке "one two three four five"
с помощью регулярного выражения \w+:
package main
import (
"fmt"
"regexp"
)
func main() {
re := regexp.MustCompile(`\w+`)
res := re.FindAllString("one two three four five", -1)
fmt.Println(res)
}
Результат выполнения кода:
[one two three four five]
Пример
Давайте найдем все совпадения с регулярным выражением, которые
содержат букву 'a' в строке:
package main
import (
"fmt"
"regexp"
)
func main() {
re := regexp.MustCompile(`[a-z]*a[a-z]*`)
res := re.FindAllString("apple banana cherry date", -1)
fmt.Println(res)
}
Результат выполнения кода:
[apple banana date]
Смотрите также
-
метод
regexp.Regexp.FindAll,
который возвращает совпадения в виде слайса байтовых срезов -
метод
regexp.Regexp.FindString,
который возвращает только первое найденное совпадение в виде строки -
метод
regexp.Regexp.FindAllStringSubmatch,
который возвращает все совпадения вместе с подвыражениями -
функцию
regexp.MustCompile,
которая компилирует регулярное выражение с паникой при ошибке