Skip to content

Commit

Permalink
Fix last unknown mask with float number
Browse files Browse the repository at this point in the history
  • Loading branch information
skosovsky committed Mar 20, 2024
1 parent d3dea5d commit ab1dcc1
Showing 1 changed file with 13 additions and 3 deletions.
16 changes: 13 additions & 3 deletions me-sms/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@ func main() {
{Content: "Перевод из Тинькофф Банк +7968р от АЛЕКСАНДР М. СЧЁТ7999 — Баланс: 9933.28р"},
{Content: "Перевод из Газпромбанк +2778р от КИРИЛЛ П. СЧЁТ3550 — Баланс: 18044.43р"},
{Content: "СЧЁТ3550 19:25 Перевод 10 790р от Людмила Д. Баланс: 15 266.43р"},
{Content: "MIR-9550 13:35 перевод 400р Комиссия 2р TINKOFF Баланс: 18 062.43р"},
{Content: "MIR-9550 13:38 Покупка 75.20р Urent Баланс: 17 987.23р"},
}

for _, v := range sms {
Expand All @@ -27,15 +29,16 @@ func main() {

func NewSms(sms Message) {
log.Println("new sms -", sms.Content)
r, _ := regexp.Compile(`[+ ]((?:\d+ )*\d+)р`)
r := regexp.MustCompile(`(?s)\b(\d[\s\d]*(?:\.\d+)?)р`)

f := r.FindAllStringSubmatch(sms.Content, -1)
f[0][1] = strings.ReplaceAll(f[0][1], " ", "")

if len(f) != 1 {
if f == nil || len(f[0]) == 0 {
log.Println("В теле сообщения отсутствует сумма")
return
}

f[0][1] = strings.ReplaceAll(f[0][1], " ", "")
amount, err := strconv.ParseFloat(f[0][1], 64)

if err == nil {
Expand All @@ -45,3 +48,10 @@ func NewSms(sms Message) {
return
}
}

//СЧЁТ7999 10:02 Перевод 350р от Ирина С. Баланс: 1150.28р
//Перевод из Тинькофф Банк +7968р от АЛЕКСАНДР М. СЧЁТ7999 — Баланс: 9933.28р
//Перевод из Газпромбанк +2778р от КИРИЛЛ П. СЧЁТ3550 — Баланс: 18044.43р
//СЧЁТ3550 19:25 Перевод 10 790р от Людмила Д. Баланс: 15 266.43р
//MIR-9550 13:35 перевод 400р Комиссия 2р TINKOFF Баланс: 18 062.43р
//MIR-9550 13:38 Покупка 75.20р Urent Баланс: 17 987.23р

0 comments on commit ab1dcc1

Please sign in to comment.