gpt4 book ai didi

string - Lua 'plain' string.gsub

转载 作者:行者123 更新时间:2023-12-01 06:30:35 25 4
gpt4 key购买 nike

我用字符串解析击中了一个小块。我有一个像这样的字符串:

footage/down/temp/cars_[100]_upper/cars_[100]_upper.exr

我在使用 gsub 删除字符串的一部分时遇到了困难。通常我会这样做
lineA = footage/down/temp/cars_[100]_upper/cars_[100]_upper.exr
lineB = footage/down/temp/cars_[100]_upper/
newline = lineA:gsub(lineB, "")

这通常会给我 'cars_[100]_upper.exr'

问题是 gsub 不喜欢字符串中的 [] 或其他特殊字符,并且与 string.find 不同,gsub 没有使用 'plain' 标志来取消模式搜索的选项。

我无法手动编辑行以包含特殊字符的转义字符,因为我正在编写文件比较脚本。

lineA 获得任何帮助使用 lineB 换行将不胜感激。

最佳答案

摘自 Lua 2e 编程的第 181 页:

The magic characters are:

( ) . % + - * ? [ ] ^ $

The character '%' works as an escape for these magic characters.



因此,我们可以想出一个简单的函数来转义这些魔法字符,并将其应用于您的输入字符串( lineB ):
function literalize(str)
return str:gsub("[%(%)%.%%%+%-%*%?%[%]%^%$]", function(c) return "%" .. c end)
end

lineA = "footage/down/temp/cars_[100]_upper/cars_[100]_upper.exr"

lineB = literalize("footage/down/temp/cars_[100]_upper/")

newline = lineA:gsub(lineB, "")

print(newline)

哪个当然打印: cars_[100]_upper.exr .

关于string - Lua 'plain' string.gsub,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1745448/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com