Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Replace 用特殊字符替换字符串中的字符串_Replace_Lua - Fatal编程技术网

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)