@Adatan
concurrency is not parallelism (c) Rob Pike

Как получить нужный результат regexp по паттерну из текста, а не bool?

Дан текст:
`От:` <@317989885321674753>
`На:` <@163995016027439106>
`Причина:` <@!163995016027439106> ....
Нужно с помощью регулярных выражений достать из него только первое схожее с "317989885321674753" это просто некий ID он всегда одной длины (18) и всегда из цифр.
Спасибо!
  • Вопрос задан
  • 70 просмотров
Решения вопроса 1
Например так:
https://play.golang.org/p/cPnYojRRPP3
package main

import (
	"fmt"
	"regexp"
)

func main() {
	text := "`От:` <@317989885321674753>\n`На:` <@163995016027439106>\n`Причина:` <@!163995016027439106>"

	re := regexp.MustCompile(`\<\@\!?(\d{18})\>`)
	matches := re.FindAllStringSubmatch(text, -1)
	for _, match := range matches {
		if len(match) > 1 {
			fmt.Println(match[1])
		}
	}
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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