Проблема со string.match

Mashra

Новичок
Автор темы
17
2
Версия MoonLoader
.026-beta
Всем привет,

У меня есть переменная, которая содержит два числа и текст. Выглядит примерно так:

"У нас яблок 240. Весят 30кг"

Мне отсюда нужно вытащить оба числа, я это пытаюсь сделать с помощью функции string.match
Я знаю, что цифры идут в таком порядке - сначала количество, потом вес, я также знаю, что второе число обязательно заканчивается на "кг" или "г", а после этого не будет ничего (т.е. это - конец строки)

Для поиска первой подходит:

Lua:
var = "У нас яблок 240. Весят 30кг"

test = string.match(var, "%d+")
print(test)

Однако с поиском второй у меня возникают сложности:
Lua:
var = "У нас яблок 240. Весят 30кг"

test = string.match(var, "%d+")
print(test)

test2 = string.match(var, "%s%d+%P+")
print(test2)

В коде выше вывод будет один: 240
Есть ли вариант найти обе переменные.

Спасибо заранее за помощь
 
Решение
Всем привет,

У меня есть переменная, которая содержит два числа и текст. Выглядит примерно так:

"У нас яблок 240. Весят 30кг"

Мне отсюда нужно вытащить оба числа, я это пытаюсь сделать с помощью функции string.match
Я знаю, что цифры идут в таком порядке - сначала количество, потом вес, я также знаю, что второе число обязательно заканчивается на "кг" или "г", а после этого не будет ничего (т.е. это - конец строки)

Для поиска первой подходит:

Lua:
var = "У нас яблок 240. Весят 30кг"

test = string.match(var, "%d+")
print(test)

Однако с поиском второй у меня возникают сложности:
Lua:
var = "У нас яблок 240. Весят 30кг"

test = string.match(var, "%d+")
print(test)

test2 = string.match(var, "%s%d+%P+")
print(test2)

В коде выше...

krim

Известный
304
132
Всем привет,

У меня есть переменная, которая содержит два числа и текст. Выглядит примерно так:

"У нас яблок 240. Весят 30кг"

Мне отсюда нужно вытащить оба числа, я это пытаюсь сделать с помощью функции string.match
Я знаю, что цифры идут в таком порядке - сначала количество, потом вес, я также знаю, что второе число обязательно заканчивается на "кг" или "г", а после этого не будет ничего (т.е. это - конец строки)

Для поиска первой подходит:

Lua:
var = "У нас яблок 240. Весят 30кг"

test = string.match(var, "%d+")
print(test)

Однако с поиском второй у меня возникают сложности:
Lua:
var = "У нас яблок 240. Весят 30кг"

test = string.match(var, "%d+")
print(test)

test2 = string.match(var, "%s%d+%P+")
print(test2)

В коде выше вывод будет один: 240
Есть ли вариант найти обе переменные.

Спасибо заранее за помощь

Lua:
var = "У нас яблок 240. Весят 30кг"
test,ves = var:match("У нас яблок (%d+). Весят (%d+)кг")
print(test)
print(ves)
так будет более понятно

 
Последнее редактирование:
  • Нравится
Реакции: Mashra

Mashra

Новичок
Автор темы
17
2
Lua:
var = "У нас яблок 240. Весят 30кг"
test,ves = var:match("У нас яблок (%d+). Весят (%d+)кг")
print(test)
print(ves)
так будет более понятно

Благодарю. Работает.