2012-06-13 4 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' 

я есть что % - побег в Луа.

мой вопрос в том, как я могу применить % для моей замененной новой строки (strs)?

ответ

7

Попробуйте

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

% используется в Lua в регулярных выражений операций например. %a для всех букв Tutorial here

Чтобы избежать этого, нам нужно использовать %%, чтобы сообщить, что мы действительно ищем знак процента, а не регулярное выражение.

+2

Обратите внимание: Lua не поддерживает регулярное выражение, просто шаблоны (которые намного менее мощны, но имеют более легкую реализацию, чем регулярные выражения) –