2014-12-08 97 views
1

我使用一些url字符串,並試圖從字符串中刪除「\」以使用url進一步使用。 但是,當我嘗試使用strin.gsub它不工作,因爲它應該。而不是它給我錯誤的輸出。從字符串lua中刪除反斜槓

字符串是

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 

其刪除「\」但它也影響「\」與「?」 我不知道「?」在哪裏來自?

回答

3

字符\用於轉義一些特殊字符的字符串,例如:\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]] 
+0

確定使用原始格式它元素的「?」但它也影響「\」。我想我必須在一個操作手段中用「_」替換「\」,當string.gsub用「」替換「\\」時,它也用「_」替換「\」。我如何實現這一點? – 2014-12-08 07:54:13

+0

到目前爲止刪除了「\\」,但還是「\」給我帶來了痛苦......'code'nas = [[\\ 192.168.1.220 \ STORAGE_1d1b7 \ a \ b \ c]] i = string .find(nas,「\\」,1) nas = string.sub(nas,3) nas = string.gsub(nas,「[['%\']]」,「_」) print nas) – 2014-12-08 08:57:20

+2

@ user1640175您還需要在'string.gsub'函數中轉義'\'。 – hjpotter92 2014-12-08 09:47:27

0

任何方式想通了......

NASLocation = NASLocation:gsub('\\\\', ''):gsub('\\', '_',1):gsub('\\','/')