package main
import (
"regexp"
"fmt"
)
func main() {
var re = regexp.MustCompile(`(?mi).*сума:\s+(?<suma>\d{1,5}[.,]\d{1,2}).*\\n(?<issuerName>.*)(?<pan>[0-9X]{16}).*нал:\s(?<terminalId>[A-Z0-9]{8}).*авторизації:\s(?<approvalCode>\d{1,10}).*чек\sN:\s(?<chq>\d{1,10}).*rrn:\s(?<rrn>\d{1,15})`)
var str = `Xxxxxxx \n вул.Угорська,буд.12 \n м.Львiв \n ПП МЕРЕЖА-СЕРВIС ЛЬВIВ \nОПЛАТА\nСУМА: 62.98 ГРН\nПiдпис власника картки не потрiбен!\nVISA CREDIT 4472XXXXXXXX2021 \nAID: A0000000031010\nТЕРМIНАЛ: S11801ZY 16/09/2022 18:49:33\nКОД АВТОРИЗАЦІЇ: 799207 ЧЕК N: 43409\nRRN: 063597415491 \nEXTERNAL RRN: 225915128338\n(c) Ingenico Group TE7E v.142.102 27/10/\nP1\n`
if len(re.FindStringIndex(str)) > 0 {
fmt.Println(re.FindString(str),"found at index",re.FindStringIndex(str)[0])
}
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Golang, please visit: https://golang.org/pkg/regexp/