golang регулярные выражения

Пользователь

от genesis_tillman , в категории: Вопросы от знатоков , 4 года назад

Как работать в golang с регулярными выражениями ? Нужно спарсить инфу и чувствую без регулярки никак

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp Pocket

2 ответа

Пользователь

от cordelia , 4 года назад

Вот неплохой примерчик

1
2
3
4
5
6
7
8
// Поиск чисел из заданной строки использую FindAllStrings метод
s := "I45, like345, Go-234 langu34age"

m := regexp.MustCompile(`[-]?\d[\d]*[\]?[\d{2}]*`) 
res := m.FindAllString(s, 2) 
for _, ele := range res { 
   fmt.Println("Number:", ele) 
} 


рекомендую документацию на офф сайте https://golang.org/pkg/regexp/syntax/

Если до этого работали с регулярками - не должно быть особых проблем


Пользователь

от alexandra_jones , 4 года назад

Регулярное выражение на Go – это символы в последовательности, они определяют шаблон поиска. Регулярное выражение a.b соответствует любой строке, она начинается с a, заканчивается на b и содержит один символ между ними (точка соответствует любому символу).


Проверить, есть ли подстрока, соответствующая a.b, нужно использовать функцию regexp.MatchString.


1
2
3
matched, err := regexp.MatchString(`a.b`, "aaxbb")
fmt.Println(matched) // true
fmt.Println(err)    // nil (regexp валидно)