Lua: Экранирование литерала% внутри string.gsub и захват% 2 - PullRequest
2 голосов
/ 27 августа 2011

Основной вопрос, но я некоторое время пытался разобраться безуспешно.

Я обрабатываю URL-адреса и мне нужно сделать простую замену.

Мне нужно заменить пробелыс буквенной строкой %20, но я не могу избежать% или %2, который сообщается как недопустимый захват.

text = string.gsub(text, "%s+", '%%20')

Сколько % мне нужно использоватьвнутри gsub, чтобы избежать знака % и захвата %2.

Ответы [ 2 ]

3 голосов
/ 29 августа 2011

Кроме того, вы можете автоматически сделать это с помощью следующего:

url = require("socket.url")
text = url.escape(string)

Это, конечно, при условии, что у вас есть библиотека сокетов в вашем пути lua.Если честно, я бы так и поступил с URL, потому что тогда вам не нужно беспокоиться о преобразовании запятых в% 2c или апострофов в% 27.

3 голосов
/ 27 августа 2011

Кажется, работает для меня:

> text="hello world"
> print(string.gsub(text, "%s+", '%%20'))
hello%20world   1

Вам нужно будет показать еще немного кода и сообщение об ошибке.

...