поместить '%' в 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)?


person gadss    schedule 13.06.2012    source источник


Ответы (1)


Пытаться

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

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

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

person Rishabh    schedule 13.06.2012
comment
обратите внимание: Lua НЕ поддерживает регулярные выражения, только шаблоны (которые гораздо менее мощные, но имеют более легкую реализацию, чем регулярные выражения) - person Henrik Ilgen; 14.06.2012