Строка Луа.найти правильный формат?


У меня есть довольно простой вопрос, но мое исследование google не помогло.. Я довольно новичок в Луа, так что..

У меня есть строка "Xxxx_yyyyy_zzzzzz", хранящаяся в локальной переменной, и я хочу разобрать ее и получить 3 новых локальных переменных. Должен ли я использовать строку.найти?

local str_ = "XXXX_YYYYY_zzzzzz"    
local first_, second_, third_ = strind.find(str_, "^(%w+)_(%w+)_(%w+)$")
1 3

1 ответ:

Вместо этого используйте string.match:

local str_ = "XXXX_YYYYY_zzzzzz"    
local first_, second_, third_ = str_:match "^([^_]+)_([^_]+)_([^_]+)$"

Посмотрите на библиотеку строк на Lua-users wiki.

string.find дополнительно возвращает индексы, в которых была найдена/найдена соответствующая подстрока. Эти два индекса (начальный и конечный) бесполезны в вашем случае, поэтому string.match будет лучшим инструментом.