Replace 用特殊字符替换字符串中的字符串
我正在尝试用一个新的字符替换带有特殊字符的字符串 例如:Replace 用特殊字符替换字符串中的字符串,replace,lua,Replace,Lua,我正在尝试用一个新的字符替换带有特殊字符的字符串 例如: path = "assets/test-image-filename.jpg" filename = "test-image-filename.jpg" newFilename = "new-filename.jpg" newPath = path:gsub(filename, newFilename) 我知道我必须用%转义像-这样的特殊字符,但文件名在我分割路径后得到的变量中。@Timothy G.的评论可能会有所帮助。我自己也在写这
path = "assets/test-image-filename.jpg"
filename = "test-image-filename.jpg"
newFilename = "new-filename.jpg"
newPath = path:gsub(filename, newFilename)
我知道我必须用
%
转义像-
这样的特殊字符,但文件名在我分割路径后得到的变量中。@Timothy G.的评论可能会有所帮助。我自己也在写这样的东西(在代码中添加了两行,实际上是一行):
%W
表示任何非字母数字字符和%1
第一个捕获的字符串。请参阅。我认为找到的答案将对您有所帮助。我想第二个答案是明确的。谢谢你的解释!这篇文章的答案很难理解。这一个更容易理解。gsub中的替换字符串使用%的方式不同,因此无需执行以下操作:newFilename=newFilename:gsub('%W','%%%1')
部分。@tonypdmtr Oops,您是对的。我修改了答案。
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)