Я хочу иметь дополнительные сбалансированные скобки, чтобы быть частью моего матча.Это возможно только с нормальными образцами?Мой тестовый код выглядит следующим образом:
for m in string.match('str{},str2{str3{}},str4,str5{a{}b{}}', '[^,]-%b{}') do
print(v)
end
вывод:
str{}
str2{str3{}}
str5{a{}b{}}
недостающая часть str4
Я думал, что шаблон [^,]-%b{}?
будетсделать это, но% bxy и?оба элемента шаблона, поэтому, конечно, он не работает, но есть ли способ сделать это в любом случае?
Мой обходной путь на данный момент:
local stored
for e in string.gmatch(str, '[^,]+') do
if stored then
e = stored .. ',' .. e
end
if string.match(e, '^[^{}]+$') or string.match(e, '^[^{}]*%b{}[^{}]*$') then
print(e)
stored = nil
else
stored = e
end
end