Экранирование и nil

3211Marlon1123

Участник
Автор темы
130
12
Версия MoonLoader
.027.0-preview
Сделал команду для проверки, в итоге после этого всего выдаёт nil в консоль и в чат.
Lua:
function cmd_read()
    local txt = 'Лас-Пайасадас Индастриз.'
    if txt:find('%-') then
        sampAddChatMessage(gstxt, main_color)
        print(gstext)
    end
end


Нужно экранировать по крайней мере символы . -
Нифига не могу разобраться)) Вроде такая фигня простая, а туплю как камень

Я попробовал
Lua:
string.gsub(txt:gsub('%-', '%-'), '%.', '%.')
И не сработало. Помогите уже пожалуйста)))
 
Решение
Сделал команду для проверки, в итоге после этого всего выдаёт nil в консоль и в чат.
Lua:
function cmd_read()
    local txt = 'Лас-Пайасадас Индастриз.'
    if txt:find('%-') then
        sampAddChatMessage(gstxt, main_color)
        print(gstext)
    end
end


Нужно экранировать по крайней мере символы . -
Нифига не могу разобраться)) Вроде такая фигня простая, а туплю как камень

Я попробовал
Lua:
string.gsub(txt:gsub('%-', '%-'), '%.', '%.')
И не сработало. Помогите уже пожалуйста)))
Если тебе просто надо экранировать символы - и .
Lua:
txt = txt:gsub("(%-)", "%%%1"):gsub("(%.)", "%%%1")
--[[ в целом можно обойтись и 1 вызовом gsub.
    txt = txt:gsub("(.*)(%-)(.*)( .*)(%.)", "%1%%%2%3%4%%%5")
]]

Если тебе нужно просто...

Andrinall

Известный
688
533
Сделал команду для проверки, в итоге после этого всего выдаёт nil в консоль и в чат.
Lua:
function cmd_read()
    local txt = 'Лас-Пайасадас Индастриз.'
    if txt:find('%-') then
        sampAddChatMessage(gstxt, main_color)
        print(gstext)
    end
end


Нужно экранировать по крайней мере символы . -
Нифига не могу разобраться)) Вроде такая фигня простая, а туплю как камень

Я попробовал
Lua:
string.gsub(txt:gsub('%-', '%-'), '%.', '%.')
И не сработало. Помогите уже пожалуйста)))
Если тебе просто надо экранировать символы - и .
Lua:
txt = txt:gsub("(%-)", "%%%1"):gsub("(%.)", "%%%1")
--[[ в целом можно обойтись и 1 вызовом gsub.
    txt = txt:gsub("(.*)(%-)(.*)( .*)(%.)", "%1%%%2%3%4%%%5")
]]

Если тебе нужно просто получать данные из какой-то строки на примере той, что у тебя в коде.
Lua:
local location = txt:match("(.*%-.*) .*") -- выведет "Лас-Пайасадас"
 

chapo

🫡 В армии с 17.10.2023. В ЛС НЕ ОТВЕЧАЮ
Друг
8,776
11,226
а нахуя экранировать если тебе надо просто вывести текст?

даже в поиске все норм
AC988A29-0E08-490B-A3B7-AE38C60587BE.png
 
  • Нравится
Реакции: Andrinall

3211Marlon1123

Участник
Автор темы
130
12
а нахуя экранировать если тебе надо просто вывести текст?

даже в поиске все норм
Посмотреть вложение 145477
Я вывел это просто в сообщение для проверки. Мне вообще нужно сравнить переменные, но поскольку одна из них текст, а другая nil, то не могу ничё сделать

а нахуя экранировать если тебе надо просто вывести текст?

даже в поиске все норм
Посмотреть вложение 145477
И ты вроде не то вывел, ибо символы должны экранированными стать

а нахуя экранировать если тебе надо просто вывести текст?

даже в поиске все норм
Посмотреть вложение 145477
Блин, вроде нашёл прикол один. Протещу и отпишу.
 

chapo

🫡 В армии с 17.10.2023. В ЛС НЕ ОТВЕЧАЮ
Друг
8,776
11,226
Я вывел это просто в сообщение для проверки. Мне вообще нужно сравнить переменные, но поскольку одна из них текст, а другая nil, то не могу ничё сделать


И ты вроде не то вывел, ибо символы должны экранированными стать


Блин, вроде нашёл прикол один. Протещу и отпишу.
экранирование через gsub все ровно вроде бы не будет работать