我试图用新的字符替换带有特殊字符的字符串。
例如:
path = "assets/test-image-filename.jpg"
filename = "test-image-filename.jpg"
newFilename = "new-filename.jpg"
newPath = path:gsub(filename, newFilename)
我知道我必须使用-
转义%
之类的特殊字符,但文件名是分割路径后得到的变量。
答案 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。