Чтобы вставить обратную косую черту \
в строку в кавычках, экранируйте ее с собой: "\\"
. \
- это символ экранирования в обычных строках в кавычках, поэтому он экранируется с помощью \
. Или вы можете использовать синтаксис длинной строки, который не допускает escape-последовательности, как уже указывалось: [[\]]
.
Процент является только escape-символом в строке, которая используется как шаблон , поэтому он используется перед магическими символами ^$()%.[]*+-?
во втором аргументе string.find
, string.match
, string.gmatch
, string.gsub
и %%
представляют %
в третьем аргументе string.gsub
.
Процент все еще находится в строке, которая хранится в памяти, но escape-последовательности обратной косой черты заменяются соответствующим символом. \\
становится \
, когда строка сохраняется в памяти, и если вы подсчитываете количество обратных косых черт в строке "\\"
, используя string.gsub
, он найдет только одну: select(2, string.gsub("\\", "\\", ""))
возвращает 1
.