Snusmumriken
Тут такая простейшая дедукция, что у меня уже есть затея для бота-модератора, который проверяет аватарки подключившихся, и если там только кривые аватарки, добавленные меньше суток назад — его типа кикало.
Саша
главное свиные пятачки не кикать...
Snusmumriken
Твоя аватарка добавлена в 31.03.2018, и там есть ещё более старые.
Anonymous
Snusmumriken
М?
Anonymous
@Snusmumriken [^0-9], %, (.-)
знаешь вот это? и где это можно посмотреть/выучить?
Snusmumriken
Это регулярные выражения.
Anonymous
вот и где их можно посмотреть?
Anonymous
вот тоже челик шарющий в луа говорит вот это👆
Anonymous
Just make script and try run
Snusmumriken
Выучить — в книжке по луа, или книжке по регулярным выражениям, с учётом того что в луа отсутствуют некоторые фичи:
1. В луа, спецсимвол класса и модов — "%", в нормальных регулярках — "\";
2. У луа нет поиска по количеству вхождений, вроде %d{2,5}, но это эмулируется (%d%d%d?%d?%d?), а ещё отсутствует вариативность "|", и это уже не эмулируется;
3. У луа есть символ нежадного поиска "-", в нормальных регулярках оно заменяется конструкцией *?.
Anonymous
я тупенький
Anonymous
ну ладно, спасибо
Anonymous
Выучить — в книжке по луа, или книжке по регулярным выражениям, с учётом того что в луа отсутствуют некоторые фичи:
1. В луа, спецсимвол класса и модов — "%", в нормальных регулярках — "\";
2. У луа нет поиска по количеству вхождений, вроде %d{2,5}, но это эмулируется (%d%d%d?%d?%d?), а ещё отсутствует вариативность "|", и это уже не эмулируется;
3. У луа есть символ нежадного поиска "-", в нормальных регулярках оно заменяется конструкцией *?.
если что извини за такой стиль написания, также я можно сказать новичок, поэтому задаю простые вопросы. надеюсь я тебя ещё не взбесил
Snusmumriken
Не говори глупости, как только ты кого-то выбесишь — ты узнаешь об этом первым.
Anonymous
хах, понял.
Snusmumriken
Я прост работаю параллельно, поэтому кратко.
Anonymous
не в этом дело
Anonymous
я просто слишком часто задаю вопросы , может думаю это плохо
Snusmumriken
Это нормально : )
Anonymous
Окей
Denis
но над этим стоит поработать)
Anonymous
вы единственная нормальная группа про луа(русская) , которую я смог найти.
Snusmumriken
В целом, регулярные выражения мало отличаются от масок поиска в той же венде, типа поиск в папке:
*.jp*g — найдёт все файлы, у которых в имени присутствует
.jpg, .jpeg, .jpblablag и т.д, а по *.pn? — найдутся файлы форматов .png, .pna, .pnb, .pn1 и т.д.
Только регулярки — сложнее и куда гибче в настройке, оно работает с классами символов (%w или \w — это символы a-zA-Z0-9, например).
Anonymous
В целом, регулярные выражения мало отличаются от масок поиска в той же венде, типа поиск в папке:
*.jp*g — найдёт все файлы, у которых в имени присутствует
.jpg, .jpeg, .jpblablag и т.д, а по *.pn? — найдутся файлы форматов .png, .pna, .pnb, .pn1 и т.д.
Только регулярки — сложнее и куда гибче в настройке, оно работает с классами символов (%w или \w — это символы a-zA-Z0-9, например).
в луа также?
Snusmumriken
Не совсем. У луа — точка это тоже спецсимвол, и для замены вендовой маски ".*" нужно написать "%..*", чтобы символ точки тоже был в выдаче.
Anonymous
а % для чего служит?
Anonymous
В целом, регулярные выражения мало отличаются от масок поиска в той же венде, типа поиск в папке:
*.jp*g — найдёт все файлы, у которых в имени присутствует
.jpg, .jpeg, .jpblablag и т.д, а по *.pn? — найдутся файлы форматов .png, .pna, .pnb, .pn1 и т.д.
Только регулярки — сложнее и куда гибче в настройке, оно работает с классами символов (%w или \w — это символы a-zA-Z0-9, например).
как * тут?
Snusmumriken
Экранирование точки, чтобы воспринималась регуляркой не как спецсимвол "любого символа", а именно как символ точки.
Саша
книжка по регуляркам наверное будет потолще чем книжка по луа. так с наскока не объять
Snusmumriken
Комбинация ".*" — означает "любое повторение любых символов", потому что звёздочка — не определяет класс искомого символа, а только количество повторений.
Anonymous
понял, спасибо
Snusmumriken
Вот ещё пара примеров:
str = "qwerty123"
найти три первых любых символа
print(str:match("...")) --> qwe
найти цифру, и следующий за ней любой символ
print(str:match("%d.")) --> 12
найти первую последовательность цифр (жадно)
print(str:match("%d*")) --> 123
Anonymous
Snusmumriken
Но учитывай что регулярки — сложные, и требуют некоторой разработки мозгов. Я сам их полноценно вкурил где-то за пол года, подходя несколько раз, понимая что "ещё не готов" и продолжая позже.
Anonymous
а %s что означает, просто в видео про луа там нашёл с D и с S.
fgntfg
https://regex101.com
Snusmumriken
https://www.lua.org/pil/20.2.html
fgntfg
Вот, прекрасное поле для эксперементов
Snusmumriken
%d — цифра, %D — что угодно, но НЕ цифра
%s — пробел, %S — НЕ пробел ))
Anonymous
воооот, это то, что именно я искал! Спасибо ещё раз
Anonymous
я с большой буквы написал, чтобы акцентировать
Snusmumriken
Свои классы символов (наборы) можно определять примерно так:
[a-zA-Z] — аналог %a (letters), для негативации — добавляем в начало набора ^:
[^a-zA-Z] — аналог %A соответственно.
Snusmumriken
Например, мы хотим заменить в тексте все "\" и "|" на "/":
(уточнение: \\ — отображается в строке как \, ибо это символ экранирования кавычек и себя, и для особых способов ввода некоторых символов)
text = "\\erwer|rwerer\\/"
print( text:gsub("[\\|]", "/") )
--> /erwer/rwerer//
Anonymous
понял
Nibeon
Кстати к юнити вроде можно луа присобачить (есть пара реализаций луа написанных на сишарпе)
Alxius
т.е. в игру на юнити можно встроить игру на love?
Snusmumriken
Если извратиться
Alxius
блин а я размечтался, уже. сделат игру на унити и в ней будет 10 компьютеров на которой игры на Love
Snusmumriken
love — это плюсовое ядро + сишный интерпретатор луа.
Юнити — плюсово-шарповое ядро, в который можно впихнуть шарповый интерпретатор луа.
Что можно сделать:
1. Написать на шарпе эмулятор ядра love и пихнуть в шарповый интерпретатор луа
2. Каким-то макаром впилить сишный интерпретатор луа и love-либы в юнити, провесить вызовы "железа".
Во втором случае — нужен сорц юнити.
Alxius
я думал С++ и с шарп отличаются не боле чем на 0.01%
Snusmumriken
Шарп — это виртуальная машина + байткод.
Плюсы — нативный код для данной железки.
Alxius
не такое точно не надо)
Snusmumriken
То что на юнити можно гонять луа-код — совсем не значит, что там можно использовать луёвые сишные библиотеки, потому что вм написана на шарпе.
Anonymous
Denis
Snusmumriken
Луа, чутка сишки, C++/шарп на уровне "сишка с классами", чутка ЖС, чутка D.
Я ориентирован не на ширину использованных языков, а на глубину общих, языконезависимых технологий, вроде стеков протоколов или методик взаимодействия с железками.
Так-то изучение любого "второго и далее" императивного языка — поиск понимания, как тут делать всё то что ты делал раньше. Так что грубо говоря, я просто умею программировать, с ООП и строгой/сильной типизацией.
Anonymous
Я не про эти, так и думал, что пошутите
fgntfg
Я знаю несколько языков на разную глубину.
fgntfg
И таки что я имею вам сказать: изучите sql и bash
fgntfg
Эти самые часто используемые.
Snusmumriken
Смотря где, и смотря кем ты работаешь ))
fgntfg
Можно еще perl и/или python понимать
fgntfg
Snusmumriken
Ты сейчас рассказал про типичные админские инструменты обработки текста/запуска-цепоченья уже готовых прог, плюс бд.
fgntfg
Хочешь чтоб твои программы запускали? Тогда Java / c#
Snusmumriken
Лично мне, например, по работе нужно эмулировать браузер и парсить хтмл. Я это делаю на луа. А потом пихаю в БД напрямую провешенной в луа апишкой, типа "создать запись, задать такому полю такое значение" и т.д. Ну и писать микросервисы на луях, со своими протоколами которые гораздо быстрее хттп.
fgntfg
Мне на работе нужно всё.
Snusmumriken
Ну вот. Но у других могут быть другие потребности.
fgntfg
Я же не требую чтоб все только это и знали. Я рекомендую
fgntfg
Lua няшечка
fgntfg
Самое полезное - алгоритмы и понимание того, что ты ищешь.
fgntfg
Протоколы тоже, но не глубоко.
Snusmumriken
Алгоритмы — фигня. Их можно заменить, переписать, оптимизировать, адаптировать и т.д.
Полезное — архитектуры и шаблоны проектирования, плюс понимание где их НЕ стоит использовать.
fgntfg
Знаю я один продукт..
fgntfg
Знаение архитектуры не панацея. Но это уже больше о архитектуре приложения. И даже экосистемы
Snusmumriken
И что самое приятное — для алгоритмов есть справочники. Чтобы их реализовать достаточно просто знать о их существовании или что они примерно делают, чтобы реализовать, это автоматически переводит их в разряд фигни, о которой особо думать не надо, потому что всегда можно залезть в справку. А вот с архитектурами приложений/зоопарка ПО — думать надо, это сложно и зачастую невозможно алгоритмизировать.
Denis
Самое полезное это иметь реальный опыт или хотя бы опытных коллег, которые подскажут))