从Lua字符串中删除反斜杠

我正在处理一些 URL 字符串,并尝试从字符串中删除“\”,以便将 URL 用于我的进一步使用。 但是,当我尝试使用 strin.gsub 时,它的工作方式不正确。相反,它给出了错误的输出。

字符串是

nas="\\192.168.1.220\STORAGE_1d1b7\a\b\c"

我尝试过的代码是:

nas=string.gsub(nas,'\\',"")
print(nas)

输出是:

192.168.1.220STORAGE_1d1b7??c

我需要的输出是:

192.168.1.220STORAGE_1d1b7_a_b_c

它删除了“\”但它也影响了“\”和“?”。我不知道“?”来自哪里?

点赞
用户1190388
用户1190388

字符 \ 在字符串中被用来转义一些特殊字符,例如:\n 表示换行符(ASCII码 10)等等(\a 是 C/C++ 中的 ASCII 码 7)。

因此,你需要定义你的字符串为:

nas = "\\\\192.168.1.220\\STORAGE_1d1b7\\a\\b\\c"

另外,Lua 还提供了另一种定义原始字符串的方式:

nas = [[\\192.168.1.220\STORAGE_1d1b7\a\b\c]]
2014-12-08 07:49:34
用户1640175
用户1640175
NASLocation = NASLocation:gsub('\\\\', ''):gsub('\\', '_',1):gsub('\\','/')

无论如何,我已经弄清楚了......

将 NASLocation 中的双反斜杠替换为空白,然后将第一个出现的反斜杠替换为下划线,最后将剩下的反斜杠替换为正斜杠。

2014-12-25 14:15:36