Регулярные выражения #1: литералы и символьный класс
Вставка
- Опубліковано 20 кві 2020
- Инфо-сайт: proproprogs.ru
Что из себя представляют регулярные выражения в Python. Литералы как простейший шаблон выражения. Символьный класс [] и его стандартные виды: \d, \D, \s, \S, \w, \W.
На самом деле этот канал чуть ли не универсальный справочник для меня. Практические всегда, когда ввожу запрос по питону, на этом канале есть ответ на мой вопрос.
Ребят, становитесь спонсорами канала! Так вы поддерживаете автора и он выпускает новые уроки 😀. Лайкните коммент в топ
Я посмотрел очень много видео с вашего канала, а к некоторым возвращаюсь пересматривать. Вы даже себе представить не можете, как сильно мне помогают Ваши видеоуроки в обучении. Еще раз, огромное спасибо за то, что вы делаете такой классный контент, а самое главное - это понятные и структурированные плейлисты, я очень мало знаю каналов знаю с такой отличной категоризацией.
У вас талант учителя! Спасибо...
Мед для ушей юных питованов!Спасибо Вам!Всегда все понятно!
Наверное самые простые объяснения на ютубе. Спасибо за вашу роботу.
Не знаю, ещё не смотрел ваш канал, но случайно нашёл данные уроки, ну что, сказать, Батенька низкий поклон Вам за Ваш Труд 👍Лучший 👍
за 17 минуть я узнал больше чем из некоторых книг ) СПАСИБО
В видео не сказано об этом, но буква Ё и ё не входят в [а-яА-Я], поэтому для русского алфавита нужно делать так [а-ёЁ-Я]
Без вас эта тема, скорее всего, показалась бы мне занудной и из-за этого еще более сложной. А с вами живенько так идет. Огромное спасибо!
Здравствуйте Сергей. Большущее Вам спасибо. Добрый человек:))
Понятно обьясняете:))
Лучший! Дай бог сил на новые уроки 🥰
Грамотная речь и внятное объяснение, спасибо!
Редко это делаю но и я оставлю хороший комментарий потому что более понятного обьяснения я не встречал. Все по делу без лишней магии. Было бы здорово если у вас на степике были так же эти курсы. Я имею в виду по регулярным выражениям, Дзинзе, sql и т.д. Я с удовольствием прошел ваши курсы по синтаксису и ООП.
Спасибо за уроки! Смотрел ваш курс по Flask и работе c DOM. Очень хорошие объяснения. Поймет любой у кого есть желание учиться
Очень хорошая подача материала и понятное объяснение, спасибо вам большое за такие уроки!
Канал - прям кладезь информации!
Очень хорошо объясняли регулярки, спасибо вам
Спасибо вам за этот канал!
Как всегда - Топовая подача!
Спасибо огромное за ваши уроки!!! Все понятно и все хорошо объяснено
Очень подробно и доходчиво. Спасибо огромное!
Очень хорошо объясняете, спасибо!
Шикарный курс!
Спасибо за уроки. Очень качественно. Небольшая ремарка. В интервале, точки его задающие в него не входят, т.ч. лучше диапазон говорить.
Спасибо тебе, мужик
Крутое видео, хорошо объясняет
Отлично объяснил. Спасибо
огонь)! спасибо
Большое спасибо за видео! Словно, на паре посидел )
Не буду перегружать вас информацией, поэтому покажу как записать выражение в шестнадцатеричном формате
Спасибо вам!
Я кстати для VBA и для Excel смотрю урок.
Благодарю!❤
На самом деле, я сам часто на кодварс писал/оптимизировал буквально каждый из показанных методов. Это настолько просто, и там настолько мало возможностей оптимизации/удобства, что у меня создаётся ощущение, что эта либа писалась для тех, кому лень сутки-другие поработать головой и написать её с нуля по потребностям.) А это довольно важно, чтобы хорошо понимать логику и парадигмы программы. Иногда абсолютно любому программеру да придётся возвращаться на средний уровень. Хотя... Это скорее к задачкам уровня си шарп, чем python.)
Это было сложно, но я в итоге досканально понял этот урок
добрый день, вы не планируете свои плейлисты оформить в виде курсов на степике? они же готовые уже, надо только код видео вставить, а там курсов бесплатных по фреймворкам, БД и регуляркам нет, для канала тоже плюс будет, больше просмотров
Да, делаю параллельно. Это все требует времени!
ВЫСШИЙ ПИЛОТАЖ !!!!!
Thanks
Идеально
Привет! Огромное спасибо за этот курс, крайне помогло разобраться с регулярными выражениями. При решении одной из задач возник вопрос, можно ли каким-то образом обозначить в регулярке то, что соседние символы в строке должны различаться. Например, "aabcc" -> "abc". Гуглил на русском и на английском, но так ничего и не нашел. Заранее извиняюсь, если написал что-то не так, ещё раз спасибо.
не совсем понял вопроса, обычно для этого используют символьные скобки [аА][бБ]ра... будет искать все и с малыми и большими буквами а и б.
А можете сделать уроки по алгоритмам и структурам данных?
Думаю, это будет актуально
да, возможно еще сделаю
Отличный видеоурок, благодарю!
Дополнительно пришлось обратиться к Вашему видеоуроку о экранировании и raw-строках, так как не мог понять почему в данном примере используется \\b
Как я понял, то в данном случае было необходимо "отделить" специальный символ строки \b (эмуляция клавиши BackSpace), от спец. символа регулярного выражения \b (граница слова)
нам нужно, чтобы в строке было 2 символа \ и b, а если просто написать \b, то, как вы правильно отметили, это BackSpace.
@@selfedu_rus Сергей, благодарю за ответ :) Подскажите еще, пожалуйста, 'служебный символ', 'спец. символ', 'метасимвол' это все взаимозаменяемые понятия?
@@podgorniy.r первые 2 да, последний - нет )
👍
😎👍
Подскажите, а как прописать символьные классы, если нужно учесть все падежи для слова "еда", т.е. оканчание может быть как однобуквенным, так и двухбуквенным: -а, -у, -ой, -ы? Спасибо
re.findall(r"\bед(([аыеу]\b)|(о[йю]\b))", text, re.IGNORECASE)
Спасибо за урок !!! хотел понтануться, по среди урока, что если прописать [0-я] будет аналогично как я выяснил потом \w =)
Хорошо что не понтанулся, а то прошаренный учитель задал бы тебе детское упражнение: найти все слова и числа (или просто все буквы и цифры) в невинном предложении "Шел ёжик 100 км по шоссе." сначала с помощью диапазона [0-я], а потом с использованием \w и попросил бы пояснить за аналогию, увидев разные результаты.
@@SayXaNow Я попробовала. Пропала "ё". Пожалуйста, можете объяснить, почему вывод разный?
@@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 используйте короткие диапазоны из этого алфавита.
@@SayXaNow Ого. Спасибо за столь развернутый ответ. Вы очень помогли.
Next(like)
квадратные скобки внутри символьного класса не воспринимаются как есть, нужен \
Здравствуйте.
Подскажите пожалуйста как c помощью регулярного выражением выбрать только консоль лог и скобки без содержимого в нем? До применения регулярного выражения console.log('regx', bottom, 123-6 -15f () false || true), после применения регулярного выражения console.log()
Эту конкретику можно в телеграм-канале спросить: t.me/python_selfedu
Народ, никто не в курсах, есть ли какая нибудь функция, чтоб получить строчку из регулярного выражения
Т.е. например если я ввел "\s" - он вернет мне пробел, если введу "\d"(случайная цифра) - то он мне будет генерировать каждый раз новую случайную цифру и т.д.
Т.е. с помощью re.findall мы ищем в тексте номера кредитных карточек(например) или имейлы
А мне нужна функция которая бы генерировала имейлы(т.е. разные тексты согласно введенному шаблону)
Есть ли такая функция?
напиши сам
ну лучший! дз бы
Сел писать шаблон разбора кривых адресов улиц и проспектов (кто как их пишет- ужас). Спасибо за уроки )
Надеюсь получиться.
Сказали что все специальные символы(кроме табуляции и переноса строки) внутри символьного класса не воспринимаются. А как же [^0-9] ?
здесь ^ это управляющий символ, означающий инверсию, то есть, выбрать любой не цифровой символ из строки
когда у человека есть призвание...
Про букву ёЁ забыл сказать
По-моему проще использовать ^ и $ для начала и конца строки
где именно? вроде примеры не подразумевают начало и конец строки. О символах ^ и $ речь пойдет на следующих занятиях
@@selfedu_rus для поиска вхождений
@@user-li5ls7gu5z все равно не понял, где проще? (лучше с указанием момента времени на видео)
@@selfedu_rus там, где \\b
@@user-li5ls7gu5z а, не это разные вещи: граница слова и начало-конец строки - не одно и то же
Почему Ява то? Ява, это мотоцикл. А язык программирования джава!
если бога нет, то кто создал этот канал