Что такое регулярные выражения (регулярки, regexp)

Поделиться
HTML-код
  • Опубликовано: 9 мар 2021
  • По просьбе подписчиков в этом видео совсем немного затронем регулярки. Напишем несколько показательных примеров и подумаем о необходимости их понимания.
    Плюсы регулярных выражений:
    1) Python очень быстро и эффективно работает с регулярками, быстрее многих других ЯП, в том числе компилируемых
    2) могут помочь там, где иначе пришлось бы предпринять много лишних действий (разбить текст, вырезать знаки препинания и т.п.)
    3) при определенных условиях могут быть короткими и читаемыми
    Минусы:
    синтаксис! Он не связан с языком программирования, не всегда понятен, для сложных шаблонов может быть большая строка, состоящая из набора разных символов, что не добавляет оптимизма.
    Где регулярки выигрывают - там где большой текст или сложный шаблон для поиска. Понятно что фразу из 3 слов проще и быстрее обработать методами строки, но по мере роста объемов текста и сложности шаблона регулярки выходят на первый план и по скорости и по краткости.
    Совет из практики: если регулярка(само выражение) большая, то вынесите ее в константы с понятным именем и напишите коммент с примером ее работы.
    Каждому питонисту советую прочесть документацию библиотеку re чисто для ознакомления, чтобы было представление о том, что там есть. Тем, кто парсит сайты и работает с текстами -регулярки нужно просто знать!
    Спасибо www.cyberforum.ru/members/109... за помощь в создании обзора
    Полезные ссылки:
    Официальная документация
    docs.python.org/3/library/re....
    Отличнейший онлайн - инструмент тестирования/изучения регулярок
    regex101.com
    Книга Яна Гойвертса «Регулярные выражения. Сборник рецептов. 2-е издание» - читать!
    Присоединяйся к помощи каналу, будет интересно)
    ✔️Бусти boosty.to/python_russian/donate
    ✔️Юмани 410011506612886
    Будь первым везде и всегда, включай уведомления о новых выпусках 🔔
    #Python #PythonRussian #PyCharm

Комментарии • 26

  • @IlyaIlya_lopkop
    @IlyaIlya_lopkop 3 года назад +12

    Мало таких же качественных видео, как у тебя. Спасибо👍

  • @stevem4806
    @stevem4806 10 месяцев назад +1

    Спасибо!

  • @gray6207
    @gray6207 3 года назад +2

    Спасибо огромное за видео. Очень доходчиво для общего понимания о регулярках. Более глубоко тот, кому надо, изучит по указанным ссылкам. Продолжай в том же духе.

    • @PythonRussian
      @PythonRussian  3 года назад +1

      согласен, особенно учитывая что тема очень большая.

  • @netsdzian8009
    @netsdzian8009 Год назад +1

    Спасибо за материалы!

  • @im0767
    @im0767 Год назад

    спасибо, очень понравилось!

  • @user-do4nq3fr6t
    @user-do4nq3fr6t 3 года назад +1

    ну как минимум начало положено для дальнейшего изучения, спасибо

    • @PythonRussian
      @PythonRussian  3 года назад +1

      в начале следующей недели постараюсь про декораторы снять.

    • @user-do4nq3fr6t
      @user-do4nq3fr6t 3 года назад

      @@PythonRussian а вот с этим вообще не приходилось ещё сталкиваться в обучении, будем ждать

  • @eldos704
    @eldos704 3 года назад +1

    В первом примере на нахождение дат, код занял 15 строк, против одной с регуляркой. Вывод - регулярки это сила

    • @PythonRussian
      @PythonRussian  3 года назад

      да, но только как и любая сила -она требует осторожного обращения. Как и с листкомпсами/лямбдами -не надо совать регулярки в каждую дырку) Ну и всегда думать о том чтобы сохранять читаемость кода (писать хотя бы коммент что за регулярка, если она не банальная).

    • @eldos704
      @eldos704 3 года назад

      @@PythonRussian спасибо за совет

  • @user-re1pg5rw1x
    @user-re1pg5rw1x 3 года назад +1

    Автор, спасибо за видео!
    Позволю себе небольшую порцию перчика в эту бочку меда, если критика здесь разрешена:
    1. хоть и было заявлено, что видео вводное и поверхностное, но было также отмечено участие некоего мастера йоды из мира регулярок и хорошая книга по регуляркам. На выходе видео действительно было только поверхностным и не были показаны хотя бы в качестве парочки примеров действительно сложные и интересные юз кейсы по использованию regex. Если это все что можно почерпнуть из книги и если это все с чем знаком мастер регулярок, то это плохие источники. К тому же, таких вводных видео по регуляркам вагон и маленькая тележка и хотелось бы, чтобы подход был как на защите диплома или кандидатской когда один из первых вопросов, а чем ваша исследовательская работа отличается от других.
    2. читать техническое апи по диагонали это моветон. Изучение апи читается через практику иначе в голове ничего не отложится. Это не худ. литература и нужно обязательно ручками поделать примеры, понять как это работает. Тогда в будущем что-то останется в памяти о возможностях апи по работе с regexp. А то многие наслушавшись таких советов приходят на собесы, указывая в резюме что они с этим работали, а на практике подтвердить заявленное не могут.
    Итог такой: видео по пайтону сейчас востребованные, язык сейчас популярный => вводных видео по пайтону будет появляться все больше и больше, но настанет момент когда кол-во перейдет в кач-во и хотелось бы, чтобы в категории качественных видео было видео от тебя, автор, потому что, как мне видится, у тебя все предпосылки для этого есть.

    • @PythonRussian
      @PythonRussian  3 года назад

      я сам слаб в регулярках, что и отмечал, потому примеры попросил у того, кто применяет их часто и разбирается. "Сложные и интересные кейсы" -это вкусовщина, на мой взгляд именно они и были показаны, что-то более сложное показывать новичку нет смысла, просто не поймет. Про вагон и маленькую тележку -а мне то что? =) я видео снимаю для собственного удовольствия и по тем темам, что просят, а вовсе не потому что думаю создать некую нетленку, которой в инете нет. Этот канал вообще появился просто из-за того что надоело отвечать про "модуле нот фаунд", а не с высокими целями. Вон судя по комментам некоторым подписчикам хотелось бы музыки на фоне и монтажа красивого, но у меня нет на это времени и желания. Я просто свое мнение выражаю и свои мысли в своем формате, у вас естественно мнение может кардинально отличаться, это и хорошо.

  • @figura-a
    @figura-a 2 года назад

    Здравствуйте.
    Подскажите пожалуйста как c помощью регулярного выражением выбрать только консоль лог и скобки без содержимого в нем? До применения регулярного выражения console.log('regx', bottom, 123-6 -15f () false || true), после применения регулярного выражения console.log()

  • @rpuropu
    @rpuropu 3 года назад

    в питоне 3.8 появилась фишка с шаред мэмори, на каком этапе, по твоему мнению, новичкам начинать учитывать работу потоков?

    • @PythonRussian
      @PythonRussian  3 года назад

      не знаю на каком) пока не столкнутся. Потоки лучше без нужды не трогать, а затронув -серьезно изучать, потому что в питоне своя специфика.

  • @rpuropu
    @rpuropu 3 года назад

    питон это конечно очень круто, но изучать что-то одно - хуже запоминается.. я вот думаю, какими базами развееть только лишь питон? прохожу бесплатные курсы (только начал) на степике, там MySQL 8.0.21..
    Вчера у одноклассника, в сбере работает, спросил какие базы там востребованы? Может Монго? он ответил - используются все ему известные О_о ... можно твоё мнение услышать? меня вот дата сайнтист направление интересует, с какими базами планировать обучение, через призму питона? Про нампи и пандас и матплот либ я в курсе, уже запланировано.. а дальше что куда?

    • @PythonRussian
      @PythonRussian  3 года назад

      Мускуль (mySQL) тоже пойдет, между сиквель БД разница есть, но она не велика, то есть поработал плотно с 1 -знаешь все. В сиквель мире самые популярные решения это мускуль и постгре, любую бери, сиквель тебе в любом случае не повредит. МонгоДБ - это мегакрутая вещь (чисто мое мнение), но это не сиквель база данных, там используется собственный язык запросов. Она используется уже сильно реже, так что я бы для старта посоветовал мускуль (раз ты его уже начал), когда все crud-операции освоишь, можно одним глазком поглядеть на Монгу, но аккуратно -затягивает.

    • @rpuropu
      @rpuropu 3 года назад

      о.. я тут осознал.. что-то я вообще не видел в инете как присасываться к базам? О_о с ними через пайчарм с питоном же как то можно общаться? вот я настолько в начале, хотя в универе я делал 140 лаб по сортировке матриц за два дня на С++ ... )).. и потом 15 лет афк вот так сказались. у меня есть убунту виртуальная и три монитора, мне это поможет симулировать что-то полезное для работы питона с базами? О_о

    • @rpuropu
      @rpuropu 3 года назад

      @@PythonRussian спасибо, что такое сиквель? почему с мягким знаком? это жаргон?)

    • @rpuropu
      @rpuropu 3 года назад

      @@PythonRussian мне во тещё интересно, вроде как можно модули для питона писать на С++, круто, отлично. Но появился вот такой язык Rust, и ег опопулярность растёт, от создателей Мозиллы.. Вроде как сеьёзный конкурент именно С++. И я вот думаю, через годик может лучше не восстанавливаться в С++, а сразу в Rust пойти, при условии, что .. Существует ли возможность совмещения его с Питоном на таком же уровне, как и с С++? Подскажешь?

    • @PythonRussian
      @PythonRussian  3 года назад

      @@rpuropu в платной версии пайчарм есть возможность и с бд удобно работать и с датафреймами и с юпитером (дата-саентистские штучки). В коде прицепиться к БД -не проблема. Про мониторы ничего не скажу, а убунта вроде не помеха для баз данных?