Вот два возможных решения.
Нет вложенных скобок в конце:
string.gsub('{any {possible} characters}{anything}', '{[^{}]*}$', '')
Здесь {[^{}]*}$
соответствует {
, затем любые 0+ символов кроме {
и }
, а затем символ }
, который должен находиться в конце строки ($
).
Если в конце есть вложенные фигурные скобки, используйте следующее:
string.gsub('{anything}{any {possible} characters}', '%b{}$', '')
Здесь %b{}$
сопоставляет подстроку {...}
с любым количеством вложенных фигурных скобок внутри и затем устанавливает позицию в конце строки с помощью $
.
См. это демо Lua
Обратите внимание, что вы можете добавить %s*
для соответствия любым 0+ пробелам (это полезно, если есть пробельные символы, например) - '%b{}%s*$'
.