@kr_ilya

Как получить отдельные элементы строки регуляркой?

Я получаю регулярным выражением из html получаю набор строк вида
/reports/schedule/Group/14779_1_26102020_08112020.pdf

groupRegexp := regexp.MustCompile("/reports/schedule/Group/[0-9]{4,}_[1|2]_[0-9]{8}_[0-9]{8}.pdf")

doc := GetHtml(config.C.GroupPage) // Получение html кода страницы

datesGroup := groupRegexp.FindAllString(doc, -1)

for _, val := range datesGroup {
	fmt.Println(val) // вывод найденных элементов
}


Как я могу получить из подобной строки, значения соответствующие 14779, 1, 26102020, 08112020 в предложенной выше строке. Желательно для каждого значения присвоить отельную переменную.
  • Вопрос задан
  • 57 просмотров
Решения вопроса 2
dollar
@dollar
Делай добро и бросай его в воду.
\/(\d{5})_(\d)_(\d{8})_(\d{8})\.
https://regex101.com/r/8CBTnX/1
Ответ написан
Комментировать
@dodo512
Скобками выделить нужные подмаски и применить FindAllStringSubmatch.
groupRegexp := regexp.MustCompile(`/reports/schedule/Group/([0-9]{4,})_([12])_([0-9]{8})_([0-9]{8})\.pdf`)

doc := GetHtml(config.C.GroupPage) // Получение html кода страницы

datesGroup := groupRegexp.FindAllStringSubmatch(doc, -1)

for _, val := range datesGroup {
  fmt.Println(val[0], val[1], val[2], val[3], val[4]) // вывод найденных элементов
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы