Регулярные выражения #1: литералы и символьный класс

Поділитися
Вставка
  • Опубліковано 20 кві 2020
  • Инфо-сайт: proproprogs.ru
    Что из себя представляют регулярные выражения в Python. Литералы как простейший шаблон выражения. Символьный класс [] и его стандартные виды: \d, \D, \s, \S, \w, \W.

КОМЕНТАРІ • 79

  • @HikkiAdvent
    @HikkiAdvent 4 місяці тому +7

    На самом деле этот канал чуть ли не универсальный справочник для меня. Практические всегда, когда ввожу запрос по питону, на этом канале есть ответ на мой вопрос.

  • @madikhan-only
    @madikhan-only 2 роки тому +30

    Ребят, становитесь спонсорами канала! Так вы поддерживаете автора и он выпускает новые уроки 😀. Лайкните коммент в топ

  • @Aporlev
    @Aporlev 2 роки тому +46

    Я посмотрел очень много видео с вашего канала, а к некоторым возвращаюсь пересматривать. Вы даже себе представить не можете, как сильно мне помогают Ваши видеоуроки в обучении. Еще раз, огромное спасибо за то, что вы делаете такой классный контент, а самое главное - это понятные и структурированные плейлисты, я очень мало знаю каналов знаю с такой отличной категоризацией.

  • @andreybelyaev5703
    @andreybelyaev5703 3 роки тому +26

    У вас талант учителя! Спасибо...

  • @user-ty1bc5zo3z
    @user-ty1bc5zo3z Рік тому +6

    Мед для ушей юных питованов!Спасибо Вам!Всегда все понятно!

  • @tor1kk
    @tor1kk 2 роки тому +17

    Наверное самые простые объяснения на ютубе. Спасибо за вашу роботу.

  • @user-uj5oq2vv4f
    @user-uj5oq2vv4f Рік тому +5

    Не знаю, ещё не смотрел ваш канал, но случайно нашёл данные уроки, ну что, сказать, Батенька низкий поклон Вам за Ваш Труд 👍Лучший 👍

  • @Sago186
    @Sago186 2 роки тому +10

    за 17 минуть я узнал больше чем из некоторых книг ) СПАСИБО

  • @nonsence4984
    @nonsence4984 2 роки тому +19

    В видео не сказано об этом, но буква Ё и ё не входят в [а-яА-Я], поэтому для русского алфавита нужно делать так [а-ёЁ-Я]

  • @nadyamoscow2461
    @nadyamoscow2461 3 роки тому +8

    Без вас эта тема, скорее всего, показалась бы мне занудной и из-за этого еще более сложной. А с вами живенько так идет. Огромное спасибо!

  • @igorratnik2357
    @igorratnik2357 Рік тому +7

    Здравствуйте Сергей. Большущее Вам спасибо. Добрый человек:))
    Понятно обьясняете:))

  • @madikhan-only
    @madikhan-only 2 роки тому +3

    Лучший! Дай бог сил на новые уроки 🥰

  • @ivan100kg
    @ivan100kg 3 роки тому +8

    Грамотная речь и внятное объяснение, спасибо!

  • @AlekseiZverev-zm7ne
    @AlekseiZverev-zm7ne Рік тому +3

    Редко это делаю но и я оставлю хороший комментарий потому что более понятного обьяснения я не встречал. Все по делу без лишней магии. Было бы здорово если у вас на степике были так же эти курсы. Я имею в виду по регулярным выражениям, Дзинзе, sql и т.д. Я с удовольствием прошел ваши курсы по синтаксису и ООП.

  • @anaevskiy9685
    @anaevskiy9685 2 роки тому +2

    Спасибо за уроки! Смотрел ваш курс по Flask и работе c DOM. Очень хорошие объяснения. Поймет любой у кого есть желание учиться

  • @Disanax
    @Disanax Рік тому +3

    Очень хорошая подача материала и понятное объяснение, спасибо вам большое за такие уроки!

  • @Sergiypsm
    @Sergiypsm 2 роки тому +2

    Канал - прям кладезь информации!

  • @xuesos
    @xuesos 4 роки тому +9

    Очень хорошо объясняли регулярки, спасибо вам

  • @hack_swan8305
    @hack_swan8305 2 роки тому +2

    Спасибо вам за этот канал!

  • @alex_satan
    @alex_satan 2 роки тому +1

    Как всегда - Топовая подача!

  • @l4cky212
    @l4cky212 Рік тому +2

    Спасибо огромное за ваши уроки!!! Все понятно и все хорошо объяснено

  • @user-pb2wg4zn3l
    @user-pb2wg4zn3l 2 роки тому +2

    Очень подробно и доходчиво. Спасибо огромное!

  • @semimaks
    @semimaks Рік тому +2

    Очень хорошо объясняете, спасибо!

  • @igorb.4917
    @igorb.4917 2 роки тому +1

    Шикарный курс!

  • @howitwasgood
    @howitwasgood Рік тому +1

    Спасибо за уроки. Очень качественно. Небольшая ремарка. В интервале, точки его задающие в него не входят, т.ч. лучше диапазон говорить.

  • @user-ee1lx1pe7n
    @user-ee1lx1pe7n 3 роки тому +6

    Спасибо тебе, мужик

  • @user-ky7qh4hu9y
    @user-ky7qh4hu9y 3 роки тому +4

    Крутое видео, хорошо объясняет

  • @who-1880
    @who-1880 3 роки тому +1

    Отлично объяснил. Спасибо

  • @ivanlino3747
    @ivanlino3747 2 роки тому +2

    огонь)! спасибо

  • @doiman6591
    @doiman6591 2 роки тому +1

    Большое спасибо за видео! Словно, на паре посидел )

  • @pip_install7496
    @pip_install7496 Місяць тому +1

    Не буду перегружать вас информацией, поэтому покажу как записать выражение в шестнадцатеричном формате

  • @studian505
    @studian505 2 місяці тому

    Спасибо вам!

  • @Rusia-16
    @Rusia-16 3 місяці тому +1

    Я кстати для VBA и для Excel смотрю урок.

  • @user-we3xm4uc4k
    @user-we3xm4uc4k 10 місяців тому +1

    Благодарю!❤

  • @mega_mango
    @mega_mango 2 роки тому +2

    На самом деле, я сам часто на кодварс писал/оптимизировал буквально каждый из показанных методов. Это настолько просто, и там настолько мало возможностей оптимизации/удобства, что у меня создаётся ощущение, что эта либа писалась для тех, кому лень сутки-другие поработать головой и написать её с нуля по потребностям.) А это довольно важно, чтобы хорошо понимать логику и парадигмы программы. Иногда абсолютно любому программеру да придётся возвращаться на средний уровень. Хотя... Это скорее к задачкам уровня си шарп, чем python.)

  • @armstrong2790
    @armstrong2790 Рік тому +1

    Это было сложно, но я в итоге досканально понял этот урок

  • @als-creator
    @als-creator Рік тому +1

    добрый день, вы не планируете свои плейлисты оформить в виде курсов на степике? они же готовые уже, надо только код видео вставить, а там курсов бесплатных по фреймворкам, БД и регуляркам нет, для канала тоже плюс будет, больше просмотров

    • @selfedu_rus
      @selfedu_rus  Рік тому +1

      Да, делаю параллельно. Это все требует времени!

  • @86Blind
    @86Blind 3 роки тому +2

    ВЫСШИЙ ПИЛОТАЖ !!!!!

  • @7s9n
    @7s9n Рік тому +1

    Thanks

  • @user-lh3te1we9p
    @user-lh3te1we9p 7 місяців тому

    Идеально

  • @fakemyexistence
    @fakemyexistence 3 роки тому +2

    Привет! Огромное спасибо за этот курс, крайне помогло разобраться с регулярными выражениями. При решении одной из задач возник вопрос, можно ли каким-то образом обозначить в регулярке то, что соседние символы в строке должны различаться. Например, "aabcc" -> "abc". Гуглил на русском и на английском, но так ничего и не нашел. Заранее извиняюсь, если написал что-то не так, ещё раз спасибо.

    • @selfedu_rus
      @selfedu_rus  3 роки тому

      не совсем понял вопроса, обычно для этого используют символьные скобки [аА][бБ]ра... будет искать все и с малыми и большими буквами а и б.

  • @vladislavraskoshinskii9681
    @vladislavraskoshinskii9681 3 роки тому +3

    А можете сделать уроки по алгоритмам и структурам данных?
    Думаю, это будет актуально

    • @selfedu_rus
      @selfedu_rus  3 роки тому +3

      да, возможно еще сделаю

  • @podgorniy.r
    @podgorniy.r 2 роки тому +1

    Отличный видеоурок, благодарю!
    Дополнительно пришлось обратиться к Вашему видеоуроку о экранировании и raw-строках, так как не мог понять почему в данном примере используется \\b
    Как я понял, то в данном случае было необходимо "отделить" специальный символ строки \b (эмуляция клавиши BackSpace), от спец. символа регулярного выражения \b (граница слова)

    • @selfedu_rus
      @selfedu_rus  2 роки тому +1

      нам нужно, чтобы в строке было 2 символа \ и b, а если просто написать \b, то, как вы правильно отметили, это BackSpace.

    • @podgorniy.r
      @podgorniy.r 2 роки тому

      @@selfedu_rus Сергей, благодарю за ответ :) Подскажите еще, пожалуйста, 'служебный символ', 'спец. символ', 'метасимвол' это все взаимозаменяемые понятия?

    • @selfedu_rus
      @selfedu_rus  2 роки тому +1

      @@podgorniy.r первые 2 да, последний - нет )

  • @javohirjavohir1685
    @javohirjavohir1685 Рік тому +1

    👍

  • @jamjam3337
    @jamjam3337 4 місяці тому +1

    😎👍

  • @dmitriyshestakoff9751
    @dmitriyshestakoff9751 Рік тому +1

    Подскажите, а как прописать символьные классы, если нужно учесть все падежи для слова "еда", т.е. оканчание может быть как однобуквенным, так и двухбуквенным: -а, -у, -ой, -ы? Спасибо

    • @SayXaNow
      @SayXaNow Рік тому +1

      re.findall(r"\bед(([аыеу]\b)|(о[йю]\b))", text, re.IGNORECASE)

  • @hitakeri
    @hitakeri Рік тому +1

    Спасибо за урок !!! хотел понтануться, по среди урока, что если прописать [0-я] будет аналогично как я выяснил потом \w =)

    • @SayXaNow
      @SayXaNow Рік тому +1

      Хорошо что не понтанулся, а то прошаренный учитель задал бы тебе детское упражнение: найти все слова и числа (или просто все буквы и цифры) в невинном предложении "Шел ёжик 100 км по шоссе." сначала с помощью диапазона [0-я], а потом с использованием \w и попросил бы пояснить за аналогию, увидев разные результаты.

    • @user-lf7dp7nf8q
      @user-lf7dp7nf8q Рік тому

      @@SayXaNow Я попробовала. Пропала "ё". Пожалуйста, можете объяснить, почему вывод разный?

    • @SayXaNow
      @SayXaNow Рік тому +1

      @@user-lf7dp7nf8q Буква «ё» не включается в общий диапазон букв кириллицы [а-я], т.к. имеет код больший чем буква «я». А вот в диапазон \w включается все, что помечено в юникоде как буква или цифра - это очень большой набор символов, выходящий за пределы [0-я]. Чтобы понять насколько грубейшей ошибкой будет использование диапазонов подобных [0-я] без понимания, что входит в этот диапазон, запустите простенький код:
      s = ""
      for char_code in range(ord("0"), ord("я")+1):
      s += chr(char_code)
      print(s)
      и вы увидите сколько символов «мусора» в этом диапазоне, не являющимися ни буквой и ни цифрой, но подходящий под этот диапазон, а поэтому будет расценен регулярным выражением как успешное совпадение.
      Поэтому пара советов для начинающих:
      - используйте только короткие «проверенные» диапазоны и объединяйте их:
      Правильно: [0-9], [a-z], [0-9A-Za-z] и т.д. (для букв кириллицы не забываем добавлять ё - [а-яА-ЯёЁ])
      Неверно: [A-z], [0-z] (в диапазон попадет мусор в виде символов [\]^` и прочих)
      - не используйте \w, если нужно искать только буквы/слова конкретного алфавита, т.к. как уже было сказано выше, набор \w захватывает большое количество дополнительных символов за пределами алфавита, с которым будем работать. Вместо \w используйте короткие диапазоны из этого алфавита.

    • @user-lf7dp7nf8q
      @user-lf7dp7nf8q Рік тому

      @@SayXaNow Ого. Спасибо за столь развернутый ответ. Вы очень помогли.

  • @Developer_python_
    @Developer_python_ Рік тому +1

    Next(like)

  • @user-cm1ri1sn2u
    @user-cm1ri1sn2u Рік тому +1

    квадратные скобки внутри символьного класса не воспринимаются как есть, нужен \

  • @figura-a
    @figura-a 2 роки тому

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

    • @selfedu_rus
      @selfedu_rus  2 роки тому

      Эту конкретику можно в телеграм-канале спросить: t.me/python_selfedu

  • @user-gf6er4ug6g
    @user-gf6er4ug6g Рік тому +1

    Народ, никто не в курсах, есть ли какая нибудь функция, чтоб получить строчку из регулярного выражения
    Т.е. например если я ввел "\s" - он вернет мне пробел, если введу "\d"(случайная цифра) - то он мне будет генерировать каждый раз новую случайную цифру и т.д.
    Т.е. с помощью re.findall мы ищем в тексте номера кредитных карточек(например) или имейлы
    А мне нужна функция которая бы генерировала имейлы(т.е. разные тексты согласно введенному шаблону)
    Есть ли такая функция?

  • @maksim4334
    @maksim4334 4 роки тому +3

    ну лучший! дз бы

  • @user-tc4fu1nx3i
    @user-tc4fu1nx3i 3 роки тому +1

    Сел писать шаблон разбора кривых адресов улиц и проспектов (кто как их пишет- ужас). Спасибо за уроки )
    Надеюсь получиться.

  • @Kirill0094
    @Kirill0094 3 роки тому

    Сказали что все специальные символы(кроме табуляции и переноса строки) внутри символьного класса не воспринимаются. А как же [^0-9] ?

    • @selfedu_rus
      @selfedu_rus  3 роки тому

      здесь ^ это управляющий символ, означающий инверсию, то есть, выбрать любой не цифровой символ из строки

  • @zlataafanaseva8595
    @zlataafanaseva8595 2 роки тому +1

    когда у человека есть призвание...

  • @user-li5ls7gu5z
    @user-li5ls7gu5z 4 роки тому +2

    Про букву ёЁ забыл сказать

  • @user-li5ls7gu5z
    @user-li5ls7gu5z 4 роки тому

    По-моему проще использовать ^ и $ для начала и конца строки

    • @selfedu_rus
      @selfedu_rus  4 роки тому +1

      где именно? вроде примеры не подразумевают начало и конец строки. О символах ^ и $ речь пойдет на следующих занятиях

    • @user-li5ls7gu5z
      @user-li5ls7gu5z 4 роки тому

      @@selfedu_rus для поиска вхождений

    • @selfedu_rus
      @selfedu_rus  4 роки тому +1

      @@user-li5ls7gu5z все равно не понял, где проще? (лучше с указанием момента времени на видео)

    • @user-li5ls7gu5z
      @user-li5ls7gu5z 4 роки тому

      @@selfedu_rus там, где \\b

    • @selfedu_rus
      @selfedu_rus  4 роки тому +2

      @@user-li5ls7gu5z а, не это разные вещи: граница слова и начало-конец строки - не одно и то же

  • @willgoonandon3050
    @willgoonandon3050 Рік тому +1

    Почему Ява то? Ява, это мотоцикл. А язык программирования джава!

  • @niktonikak1820
    @niktonikak1820 Рік тому +1

    если бога нет, то кто создал этот канал