用特殊字符替换字符串中的字符串
问题描述:
我试图用新字符替换带有特殊字符的字符串。用特殊字符替换字符串中的字符串
例如:
path = "assets/test-image-filename.jpg"
filename = "test-image-filename.jpg"
newFilename = "new-filename.jpg"
newPath = path:gsub(filename, newFilename)
我知道我必须逃离特殊字符,如-
与%
,但文件名是一个变量我分裂路径后得到。
答
@蒂莫西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。
我认为找到答案[here](http://stackoverflow.com/questions/29072601/lua-string-gsub-with-a-hyphen)会帮助你。我特别想第二个答案。 –