Замена строки в String Corona SDK

Проблема: у меня есть такая строка: "this is a !a joke !/a! haha"
Проблема в том, что я хочу заменить часть "!a joke !/a!" Однако проблема в том, что я не могу использовать string.replace(), так как часть между "!a and !/a!" изменяется, поэтому иногда это может быть "!a happy !/a!" или иногда это может быть "!a cheer !/a!" и так далее.... Мой вопрос в том, как я могу заменить эту строку, если все, что остается прежним, это !a и !/a


person user3496349    schedule 30.01.2015    source источник


Ответы (1)


Вы можете использовать string.gsub со строковыми шаблонами lua:

string.gsub("this is a !a joke !/a! haha", "!a %a+ !/a!", "cheer")

При необходимости вы можете даже захватить строку между !a:

local str = "this is a !a joke !/a! haha"
str:gsub ("!a (%a+) !/a!", "sad %1")

Который после замены дает вам "this is a sad joke haha".

Другие шаблоны см. в справочном руководстве по Lua 6.4.1 — Шаблоны. и доступные классы персонажей.

person greatwolf    schedule 30.01.2015
comment
Благодарю вас! Второй пример — это то, что мне нужно, потому что я не знал, как обрабатывать изменение текста между двумя конкретными строками, которые я искал. - person user3496349; 02.02.2015