Задать вопрос
YaRobot
@YaRobot

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

Приветствую!
Как можно в многострочном тексте найти три его части.
Для примера текст:

Мы оба влюблены в один и тот же сон,
Нас вынесла волна — и укатилась с шумом.
Ты ль жарче влюблена, иль я страстней влюблен,
Какое дело нам! Мы не поверим думам! 15 июня 1903
Информация сайта: https://domain.tdl/?name=asdasdasd


Первое совпадение: стих из N строк
Второе: Информация сайта
Третье: всё остальное (тут конкретно ссылка)

Сама проблема в том, что главный якорь Информация сайта а остальным надо как то оперировать, возможно менять местами и т.п.

Как можно на выходи получить список из трёх элементов? Интересует сама регулярка

Спасибо

P.S.
Последние два понимаю как найти regexp.MustCompile(`(Информация сайта\s)(.*)$`)
  • Вопрос задан
  • 95 просмотров
Подписаться 1 Простой 2 комментария
Решения вопроса 1
Тут лучше без регулярок, будет эффективнее: https://go.dev/play/p/7Ae-T6O0YmD

text := `Мы оба влюблены в один и тот же сон,
Нас вынесла волна — и укатилась с шумом.
Ты ль жарче влюблена, иль я страстней влюблен,
Какое дело нам! Мы не поверим думам! 15 июня 1903
Информация сайта: https://domain.tdl/?name=asdasdasd
`

parts := strings.Split(text, "Информация сайта: ")

fmt.Println(parts[0])
fmt.Println(parts[1])


Если очень хочется регуляркой, тогда так: https://go.dev/play/p/pJ0mtx4gWPC

re := regexp.MustCompile(`(?s)^(.+)Информация сайта: (.+)$`)

matches := re.FindStringSubmatch(text)

fmt.Println(matches[1])
fmt.Println(matches[2])
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
Wanted. Санкт-Петербург
До 450 000 ₽
Wanted. Санкт-Петербург
До 100 000 ₽
Wanted. Санкт-Петербург
До 120 000 ₽
18 янв. 2025, в 00:01
500 руб./за проект
17 янв. 2025, в 23:56
10000 руб./за проект