Я новичок в программировании на Lua, перешел из python, чтобы сделать небольшую надстройку для world of warcraft для друга. Я изучаю различные способы поиска фрагмента текста из довольно большой строки простого текста. Мне нужно извлечь информацию из нужного мне текста и затем обработать ее обычным способом.
Строка текста может быть чем угодно, однако ниже мы собираемся извлечь и обработать
-- GSL --
items = ["itemid":"qty" ,"itemid":"qty" ,"itemid":"qty" ,]
-- ENDGSL --
Мы хотим убрать весь блок текста из потенциально большого блока текста, окружающего его, а затем удалить - GSL - и - ENDGSL -, оставив:
items = ["itemdid":"qty …
Я изучал различные методы и, похоже, не могу обойтись ни одним из них.
У кого-нибудь есть предложения относительно лучшего способа решения этой проблемы?
РЕДАКТИРОВАТЬ: дополнительная проблема,
На основании принятого ответа я немного изменил код на следующий.
function GuildShoppingList:GUILDBANKFRAME_OPENED()
-- Actions to be taken when guild bank frame is opened.
if debug == "True" then self:Print("Debug mode on, guild bank frame opened") end
gslBankTab = GetCurrentGuildBankTab()
gslBankInfo = GetGuildBankText(gslBankTab)
p1 = gslBankInfo:match('%-%- GSL %-%-%s+(.*)%s+%-%- ENDGSL %-%-')
self:Print(p1)
end
Строка теперь немного изменилась, информация, которую мы анализируем,
{itemid:qty, itemid:qty, itemid:qty, itemid:qty}
Теперь эта строка вызывается в p1. Мне нужно обновить метод s: match, чтобы также убрать {} и перебрать каждый элемент и его ключ, разделенный, так что у меня осталось
itemid:qty
itemid:qty
itemid:qty
itemid:qty
Тогда я могу определить каждую строку по отдельности и поместить ее туда, куда она должна идти.