Sasha
и все же, как это записать на луа?
Sasha
Ла-адно, (.+)\r\n
опять, это не одно и тоже)
Snusmumriken
Хорошо. Какая задача? ))
Snusmumriken
Хм, надо вкурить в "нормальные регекспы", потому что там чот много местячковой фигни. Ненужной, конечно, но вдруг придётся чужое разбирать.
Sasha
Хорошо. Какая задача? ))
мне бы регу на луа перевести)) буду очень признателен
Snusmumriken
Мм. Ну переводи ))
Sasha
??
Sasha
я же попросил помочь перевести, так как луашные реги не знаю
Snusmumriken
Ну, я помог )) Это всё таки вот это: (.+)\r\n
Snusmumriken
Полный эквивалент (\s|\S)+ — (.+), потому что, простите, тут совершенно любые символы.
Snusmumriken
И в целом, эквивалент (?=\r\n) — \r\n.
Snusmumriken
я же попросил помочь перевести, так как луашные реги не знаю
А теперь, ты не ведёшь себя как свинья и отвечаешь, чем конкретно тебя не устраивает предложенное выражение.
Snusmumriken
Даёшь пример того, на чём применяешь, и того что хочешь получить на выходе.
Sasha
Даёшь пример того, на чём применяешь, и того что хочешь получить на выходе.
string = [[qwe 123 ]] result = string:match("regexp") Желаемый результат: qwe 123
Snusmumriken
То есть, без последнего перевода строки?
Sasha
да
Snusmumriken
(.*)[\r\n]*
Snusmumriken
string = [[qwe 123 ]] result = string:match("regexp") Желаемый результат: qwe 123
Нельзя цепляться за одновременное использование \r\n. В зависимости от кодировки файла со скриптом, тут может быть \r, \n, \r\n или даже \n\r (иногда бывает). Поэтому мы учитываем все варианты набором.
Snusmumriken
И вот это вот (\s|\S)+ — совершенно бессмысленная конструкция. Она не нужна. Её не нужно переводить, точнее, нужно сократить. Она и в обычных регулярках сокращается до .+.
Highly Likely
Нет, это вообще любой символ.
Да. А множество \s\S — меньше множества .
Highly Likely
Емнип, офк
Snusmumriken
Да. А множество \s\S — меньше множества .
"\s|\S" — равняется множеству "."
Sasha
Нет, это вообще любой символ.
https://ru.wikipedia.org/wiki/Регулярные_выражения
Sasha
(.*)[\r\n]*
string = [[qwe 123 ]] result = string:match(" (.*)[\n]* ") Так?
Highly Likely
Окей, значит память подвела
Snusmumriken
string = [[qwe 123 ]] result = string:match(" (.*)[\n]* ") Так?
Таки замени звёздочку после [\r\n] на +.
Sasha
Получается в луа точка включает в себя перенос строки?
Snusmumriken
Да. И везде включает.
Snusmumriken
За исключением какого-то странного режима регулярок в некоторых отдельных ЯП, который "только по отдельным строкам". Считай что в общем оно глобальное. Глобальный любой символ (ascii-октет).
Snusmumriken
Получается в луа точка включает в себя перенос строки?
Ещё раз, в той статье на википедии которую ты скинул было:
Snusmumriken
Если ты где-то встретил точку, которая не включает в себя перевод строки — это кастомщина. Это значит что в данном языке или в данных регулярках кто-то накастомил поведение НЕ по умолчанию.
Sasha
Ещё раз, в той статье на википедии которую ты скинул было:
это про \s\S сказано. Про точку говорится в первой строке
Snusmumriken
В некоторых реализациях. Кастомщина.
Snusmumriken
Надо попросить дядю Пашу ввести админские заметки об участниках в чатах. Я же всё забуду.
fgntfg
там или куча пробелов, или куча не-пробелов.
fgntfg
надо проверить, но я уже в пижаме
Snusmumriken
там или куча пробелов, или куча не-пробелов.
В нормальных регулярках, у \s — более расширенное действие. Но даже с пробелами "куча пробелов или непробелов" — это полный аналог "куча чего угодно" ))
Highly Likely
А не каша
fgntfg
(\s|\S) - пробел или не пробел. + значит что повторятся ноль или больше раз
Snusmumriken
Всё таки каша: (\s|\S)+ то есть (\s|\S)(\s|\S)?(\s|\S)?...
Highly Likely
Ну, да, я не успел это дописать. Регулярка разворачивается вот в это
Highly Likely
А не в \s\s\s\s\s или \S\S\S\S\S
Snusmumriken
Вот "(\s+|\S+)" было бы уже "либо/либо", да.
fgntfg
или изначально регэксп кривой, или есть какой-то подвох
Snusmumriken
Он изначально кривой. Костыль для того чтобы любой системой воспринималось вместе с переводами строки, потому что точка, в некоторых кастомных системах, не включает в себя перевод строки.
fgntfg
костыль?
Snusmumriken
Да.
fgntfg
попахивает javascriptом
Snusmumriken
С тем же успехом можно было \w|\W использовать.
Highly Likely
А можно просто срезать последний перевод строки, если только это и нужно)))
Highly Likely
И никаких регулярок не нужно))
Snusmumriken
Типа, итерируем по символам с конца и ищем перевод строки, а потом обрезаем по нему?
Highly Likely
С тем же успехом можно было \w|\W использовать.
А вот тут возможно и нет. Я точно помню, что какой-то класс не включает в себя какие-то спец. символы. Есть вероятность, что какой-то из вот подобных
fgntfg
И никаких регулярок не нужно))
можно посадить человека на оклад и дать ему форму, чтоб он поля заполнял.
Highly Likely
Он в любом случае будет где-то одним из последних символов
Snusmumriken
А вот тут возможно и нет. Я точно помню, что какой-то класс не включает в себя какие-то спец. символы. Есть вероятность, что какой-то из вот подобных
Тут совершенно не важно какой класс. Что бы ни включал в себя \w, \W работает ПОЛНЫМ исключением \w, соответственно вместе они покрывают вообще всё.
Highly Likely
А, да
Highly Likely
Ты прав
Snusmumriken
Теория множеств, блин
Попов
Здравствуйте, подскажите, как cUrl подключить система ubuntu поставил apt install lua-curl но пытаюсь подключить в скрипт local cURL = require "cUrl" он его не находит, luacurl пробовал и lua-curl тоже нифига
Попов
а все, вроде скомпилировал
Попов
Не могу понять как POST запрос выполнить lua: 1.lua:3: attempt to call field 'easy' (a nil value) stack traceback: 1.lua:3: in main chunk [C]: in ?
Попов
Где вообще смотреть методы этих модулей, в интернете написано curl, юзай easy и юзай setopt_ парам но lua орет что таких методов нету
Попов
for k,v in pairs(cURL) do print(k,': ',v) end
ООо, спасибо добрый человек! Я уже 3и часа мучаюсь!
Alexey
https://github.com/Lua-cURL/Lua-cURLv3 Но с докой - как всегда не очень Но том в принципе маппинг достаточно прямолинейный и можно смотреть доку на libcurl
Попов
c:setopt(curl.OPT_POSTFIELDS, '{username: "' .. username .. '"}") подскажите как сконкатинировать
Попов
ошибку выдает
Попов
жесть никогда на lua не писал, пытаюсь сделать модуль авторизации для prosody im в jitsi. Работаю в первый раз, начальник озадачил пзц.. мучаюсь
Попов
c:setopt(curl.OPT_POSTFIELDS, '{username: "'.. username .. '"}')
спасибо, получается после кавычек сразу .. точки '..