用特殊字符替换字符串中的字符串

时间:2017-03-05 16:51:34

标签: replace lua

我试图用新的字符替换带有特殊字符的字符串。

例如:

path = "assets/test-image-filename.jpg"
filename = "test-image-filename.jpg"
newFilename = "new-filename.jpg"
newPath = path:gsub(filename, newFilename)

我知道我必须使用-转义%之类的特殊字符,但文件名是分割路径后得到的变量。

1 个答案:

答案 0 :(得分:2)

@Timothy G。的评论可以提供帮助。我自己写的是这样的东西(代码中添加了两行,实际上是一行):

path = "assets/test-image-filename.jpg"
filename = "test-image-filename.jpg"
newFilename = "new-filename.jpg"

filename = filename:gsub('%W', '%%%1')
-- newFilename = newFilename:gsub('%W', '%%%1') -- no need to do the same for repl string

newPath = path:gsub(filename, newFilename)

%W表示任何非字母数字字符,%1表示第一个捕获的字符串。请参阅6.4.1 of Lua Reference Manual