使用特殊字符替换字符串

我正在尝试用新字符串替换带有特殊字符的字符串。

例如:

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

我知道我必须用%转义特殊字符,例如' - ',但文件名在我拆分路径后得到的变量中。

点赞
用户6153990
用户6153990

@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') --不需要为替换字符串做相同的操作

newPath = path:gsub(filename, newFilename)

%W表示任何非字母数字字符,%1表示第一个捕获字符串。参见Lua参考手册6.4.1

2017-03-05 17:23:47