在Corona SDK中替换字符串中的字符串

问题:我有一个类似于如下的字符串: "this is a !a joke !/a! haha"

问题是我想要替换部分 "!a joke !/a!",但是问题是我不能使用 string.replace(),因为在 "!a 和 !/a" 之间的部分会发生变化,所以有时它可能是 "!a happy !/a!",有时可能是 "!a cheer !/a!",等等... 我的问题是如果所有不变的都是 !a!/a,那我该如何替换这个字符串。

点赞
用户234175
用户234175

你可以使用 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 - 模式 获取其他可用的模式和字符类。

2015-01-30 08:34:22