lua - разделить строку пробелами и числами через запятую - PullRequest
1 голос
/ 16 мая 2019

Как разделить строку с пробелами и числами в ней через запятую?

например,

str = "bar, bar123, bar 123, 123"

до таблицы, содержащей

{"bar", "bar123", "bar 123", "123"}

Ответы [ 3 ]

2 голосов
/ 16 мая 2019

Ключом к упрощению сопоставления с образцом является обеспечение однородности. В этом случае это достигается за счет того, что каждое поле имеет завершающую запятую:

for w in (str..","):gmatch("(.-),%s*") do
   print("["..w.."]")
end
0 голосов
/ 20 мая 2019

Вы можете использовать эту функцию.

function string:split(_sep)
    local sep, fields = _sep or ":", {}
    local pattern = string.format("([^%s]+)", sep)
    self:gsub(pattern, function(c) fields[#fields+1] = c end)
    return fields
end

Это вернет таблицу, которая разделена на _sep.

0 голосов
/ 16 мая 2019

Установите модуль split от luarocks, затем

split = require("split").split
t = split(str, ', ')
for _, val in ipairs(t) do print(">" .. val .. "<") end
>bar<
>bar123<
>bar 123<
>123<
...