2012-06-13 145 views
3

我有这样的代码把“%”在string.gsub()在Lua

local strs = "my dog" 
print (string.gsub(strs , " ","%20")) 

我只是想结果应该是这样的my%20dog,但我得到这个错误

Runtime error 
     ... invalid capture index 
stack traceback: 
     [C]: ? 
     [C]: in function 'gsub' 

我有读取%是在Lua逃跑。

我的问题是,我如何可以将%应用于我替换的新字符串(strs)?

回答

7

尝试

print (string.gsub(strs , " ","%%20")) 

%在Lua是用在正则表达式的操作如。 %a是所有字母Tutorial here

这样才能逃避它,我们需要使用%%告诉我们实际上是在寻找一个百分比符号,而不是一个正则表达式。

+2

请注意:Lua不支持正则表达式,只是模式(这些模式远不如正则表达式强大,但比正则表达式更轻量级) –