Ошибка при манипулировании жало с "\" в Lua - PullRequest
1 голос
/ 16 июня 2020
local filepath = "c:\\temp\\parentdir"
local dirname = string.match(filepath, "[^\\]+$")
print(dirname)

Приведенный выше код дает правильный результат: parentdir

Затем, если я использую тот же код, но только один "\", как показано ниже

local filepath = "c:\temp\parentdir"
local dirname = string.match(filepath, "[^\\]+$")
print(dirname)

Я получаю это ошибка

"lua: main.lua:1: invalid escape sequence near '"c: emp\p'"

помогите пожалуйста. Как мы можем решить эту проблему программно

1 Ответ

1 голос
/ 16 июня 2020

Это не проблема, потому что вы указываете не c:\temp\parentdir буквально, а c:{tab}emp{unknown_character}arentdir. Чтобы предоставить c:\temp\parentdir, вы можете использовать:

  1. "c: \\ temp \\ parentdir"
  2. 'c: \\ temp \\ parentdir'
  3. [[c: \ temp \ parentdir]]

Если вы читаете c:\temp\parentdir из файла или ввода, вам не нужно добавлять второй \, потому что он есть только в код escape-символ. Подробнее о здесь .

Второе решение - использовать / вместо \.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...