00:00:00 Введение 00:10:30 Синтаксис регулярных выражений 00:12:54 Задание регулярного выражения 00:30:38 RegExp 00:38:11 Метод match 00:46:48 Метод split 00:49:28 Метод replace 00:50:43 Метод replace с аргументом функции 00:53:28 Метод search 00:55:05 Обобщение
@uaplatformacomua3 жыл бұрын
Огромное спасибо! У вас самое лучшее объяснение регулярных выражений на самых понятных примерах. Супер!
@DimitarRad2 жыл бұрын
Только вчера на созвоне SummerCamp22 задавал вопрос про bnf, а тут видос на эту тему. Спасибо)
@timashoff Жыл бұрын
за что люблю лекции Тимура, казалось бы смотришь про регулярки, а узнаешь про bnf, далее гуглишь, видишь dsl и пазл складывается с sql аура магии спадает и приходит понимание )
@Morexod9992 жыл бұрын
Отличная лекция!
@TimurSevimli2 жыл бұрын
Спасибо за лекцию! Регулярные выражения одно из не любимых тем, слава Аллаху что уже существует чат-боты с искусственным интеллектом которые облегчают работать с регулярные выражениями😌
@alexanderbunin73882 жыл бұрын
Чтобы не забыть, что было в скобках, можно делать именованные скобочные группы. Плюс по этому ключу можно обращаться к подстроке в свойстве groups результата, возвращаемого из match/matchAll
@ShortsAreUp3 жыл бұрын
Спасибо за видео. Такой вопрос: почему регулярное выражение имеет тип object? JS сует регулярку в обьект когда видит ее в коде или как? Имею ввиду не создание через new RegExp а например typeof /a+bc/g возвращает object
@TimurShemsedinov3 жыл бұрын
object это тип всех инстансов классов и Date и Array и EventEmitter
@Antonio-fm1sq3 жыл бұрын
Спасибо!
@user-lex13084 жыл бұрын
Дякую)
@masterguyver845 жыл бұрын
Спасибо! Вопрос, можно ли на BNF сделать что-то типа языка для описания какой-либо технической задачи из предметной области и потом разово откомпилировать и превратить такое описание в код языка JS, либо другого. Потом просто брать и на таком "языке описания" задавать, например задачу для расчета. Она по идее будет превращаться в код языка программирования уже откомпилированный. Ну это так "банально" описал. Просто такое возможно? Теория компиляторов в целом отдельное направление. Просто интересно .....
@TimurShemsedinov5 жыл бұрын
На BNF можно сделать описание синтаксиса, откомпилировать BNF в регулярки или строковой парсинг на JS, C, C++ или другом языке, и этот парсер позволит просто парсить описание предметной области, но не будет его исполнять. Потому, что язык, это не только парсер, но и рантайм или компилятор в исполняемый код, машинный или промежуточный (байт-код).
@TimurShemsedinov5 жыл бұрын
Другими словами, магии не будет, сделать рантайм на много порядков сложнее, чем парсер.
@masterguyver845 жыл бұрын
@@TimurShemsedinov Ясно, чтоб магию творить надо теорию компиляторов изучать, но чтоб такое познать, надо много практики. Компилятор создавать наверное очень сложно.
@kanstantsinmentorwebfronte85294 жыл бұрын
Под конкретные доменные области пишут DSL ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%B5%D0%B4%D0%BC%D0%B5%D1%82%D0%BD%D0%BE-%D0%BE%D1%80%D0%B8%D0%B5%D0%BD%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D1%8B%D0%B9_%D1%8F%D0%B7%D1%8B%D0%BA Ими вполне удобно пользоваться, так как ты сам создаешь удобный синтаксис. Использовали например pegjs.org/
@АскаровРуслан-л5м5 жыл бұрын
очень круто и подробно объясняете эту тему. Спасибо вам!
@andreyn53334 жыл бұрын
На 1.01 услышал, что "мы прошли Set..." Как это мы прошли Set? Я все лекции с начала смотрю, не помню такого... В какой лекции сеты?
@TimurShemsedinov4 жыл бұрын
Оглавление тут: github.com/HowProgrammingWorks/Index Если вы посмотрите по оглавлению, то лекция про коллекции находится до лекции про регулярки, хотя, я читаю их не по порядку и может быть такая путаница, но не в этом случае
@andreyn53334 жыл бұрын
@@TimurShemsedinov Понял, спасибо. А я то смотрю в порядке очередности видео на ютубе
@pavpav15735 жыл бұрын
Ещё вопрос : я правильно понял , что в JS , regExp работают только с англ , т.е. русскоязычную или любой др кириллический языка они не распарсят? Спасибо !
@TimurShemsedinov5 жыл бұрын
Распарсят
@RisDeep4 жыл бұрын
Стандартные символьные классы включают только латиницу. Например, const getWordCount = (str) => str.match(/\w+/g).length; // не работает с кириллицей const getWordCount = (str) => str.match(/[а-яА-ЯёЁ\w]+/g).length; // работает
@alexanderbunin73882 жыл бұрын
В js есть look backward. Позитивный - (?
@pavpav15735 жыл бұрын
Подскажите, пожалуйста, какие программы и ос вы используете в данном видел ? Похоже на терминал и far , но far только для видны ведь
@TimurShemsedinov5 жыл бұрын
os fedora, терминал terminator, файловый менеджер и редактор mc (midnight commande, он есть для всех ос)
@pavpav15735 жыл бұрын
Timur Shemsedinov спасибо !
@pavpav15735 жыл бұрын
@@TimurShemsedinov а можно узнать почему именно fedora , а не ubuntu? она более удобна для разработки и программирования или это просто дело вкуса?
@TimurShemsedinov5 жыл бұрын
@@pavpav1573 довелось 4 месяца на убунте года 4 назад провести - более глючной ос я не видел, даже винда стабильнее, кроме того, федора родственная ос для CentOS и всего семейства RedHat, на ней и тов. Линус работает
@pavpav15735 жыл бұрын
@@TimurShemsedinov оу, спасибо за ответ! Теперь поищу дистрибутив Fedora себе!
@Igor_UA6 жыл бұрын
СПАСИБО!!!
@JohnJTrastonАй бұрын
Да regexp это как Assembler. Писать на нём можно, конечно, но потом гемора не оберёшься. Что-то длиннее уже 10 символов тяжело понять быстро.
@АлМ-ы8ъ5 жыл бұрын
По моему эпоха файловых менеджеров типа Far подошла к концу. Сейчас есть IDE (и в 2018 году уже давно были). Вы консерватор, товарищ автор (даже по уровню 2018, хоть и знаете много чего)
@TimurShemsedinov5 жыл бұрын
Это миднайт, я его начал использовать в 1997 году под freebsd, новые версии выходят и сейчас, в 2020, разработка не остана, очень много пользователей на линуксах, фри, маках. Как командная строка не устарела, так и файловые менеддеры живее всех живых)))
@АлМ-ы8ъ5 жыл бұрын
@@TimurShemsedinov спорить с тобой не буду, но я видел до сих пор только использование нативной командной строки (неважно какой платформы) а не что то типа "Norton Commander". Я его в детстве изучал)
@TimurShemsedinov5 жыл бұрын
@@АлМ-ы8ъ А пользователи программного обеспечения не видят и консолей и IDE, для них создается впечатление, что все люди в мире работают в браузере и ворде )))
@АлМ-ы8ъ4 жыл бұрын
@@TimurShemsedinov Не ну это понятно. Но ведь в MC код писать гораздо медленнее...
@TimurShemsedinov4 жыл бұрын
@@АлМ-ы8ъ Это еще почему? И писать код быстро - вообще ничего хорошего в этом нет.
@TheKirk19894 жыл бұрын
Редко встретишь айтишника который понятным для нормальных людей языком объясняет какую-либо информацию ! В этот раз я его тоже не встретил! :D
@ILoveSoImAlive4 жыл бұрын
блин, я завис: при чём тут "вхождения"? 🤣🤦♂️ entry в данном случае значит не "вхождение", а "внесение/введение (записи)" или просто "запись". ну не хватает в англицком слов на все случаи жизни, поэтому сразу сто вещей одним словом обозначаются. но это же не значит, что при переводе просто любое из значений слова брать можно и везьде применять, где попало. 🤭 лекции замечательные 👍 ликбез нужен человечеству как воздух, если не хотим назад в каменный век. большое спасибо!
@geek78073 жыл бұрын
Вторая минута, количество Ээээ уже зашкаливает. Да и голос такой, как-будто перед началом записи диктор пробежал несколько километров без остановки…