Регулярные выражения #4: флаги и проверки

  Рет қаралды 22,281

selfedu

selfedu

Күн бұрын

Пікірлер: 49
@johnmazepa
@johnmazepa Жыл бұрын
ставьте + кому все было ясно в предыдущих уроках, а в этом - поплыл))
@dmitry5145
@dmitry5145 3 ай бұрын
Аналогично!
@nnutipa
@nnutipa 3 жыл бұрын
Регулярки конечно взрывают мозг
@anaevskiy9685
@anaevskiy9685 2 жыл бұрын
Я так и думал, что регулярки тема не простая) Использовал готовые шаблоны в своих проектах, а сейчас сам решил ознакомиться. Спасибо за урок!
@nadyamoscow2461
@nadyamoscow2461 3 жыл бұрын
О боже, финальная фраза вернула меня к жизни! Огромное спасибо за прекрасную подачу материала, но какое же счастье, что остается только практика и больше никаких ужасных символов и конструкций не добавится!! Вроде бы их не так уж много, и, наверное, практика позволит их переварить. Но при первом знакомстве они ужасны!
@soldatov_ss
@soldatov_ss 4 жыл бұрын
Просто топ, не останавливайся, у тебя круто получается!) Задумайся о создании своих курсов на юдеми или степике, ты можешь многим начинающим помочь!)
@AnatoliyDekorstyle
@AnatoliyDekorstyle Жыл бұрын
чувак у него давно есть курсы ))) и там и там
@ВоваКолокольцев-с8ж
@ВоваКолокольцев-с8ж Жыл бұрын
@@AnatoliyDekorstyle где?
@AnatoliyDekorstyle
@AnatoliyDekorstyle Жыл бұрын
@@ВоваКолокольцев-с8ж на степике как минимум 3 я два проходил, на удеми сам не смотрел, но говорили есть. На степике кстати есть курс беспл по регуляркам , как практика после этой замеч.теории
@СергейЮров-б6е
@СергейЮров-б6е 3 жыл бұрын
В интернете много материала, но мало понятного материала🤔 Много людей, которые знают регулярки, но как же мало, которые могут их объяснить. Спасибо!
@setloger
@setloger 2 жыл бұрын
И вот на 4м уроке по регуляркам у меня взорвался мозг!)
@elenalevasheva3830
@elenalevasheva3830 Жыл бұрын
Спасибо, урок супер. Появляется надежда, что пусть не сразу, не за раз, но можно разобраться
@СарварХайдаров-ч4й
@СарварХайдаров-ч4й 2 жыл бұрын
согласно википедию (?=шаблон) используется для проверки заканчивается ли фрагмент текста этим шаблоном (?
@podgorniy.r
@podgorniy.r 3 жыл бұрын
Долго не мог разобраться почему кавычка между пробелами не завершает шаблон. 9:39 В итоге после хорошего мозгового штурма я понял, что кавычка между пробелами не сопоставляется с завершающим выражением, так как перед ней находится символ пробела, который выполняет условие несовпадения. Как следствие, нарушается необходимое условие для завершения шаблона (текст, а только потом кавычка).
@ПавелКовальчук-с6б
@ПавелКовальчук-с6б 2 жыл бұрын
Но ведь точка соответствует любому символу, кроме символа переноса строки (‘ ’), значит и пробел подходит под условие окончания шаблона, хорошо пробел ретроспективный негативный мы его просто не учитываем, тогда всё равно не понятно почему игнорируется кавычка после пробела?
@SayXaNow
@SayXaNow Жыл бұрын
@@ПавелКовальчук-с6б автор просто не понимает, как правильно используются ретроспективные проверки. в кратце - ретроспективная проверка служит для проверки некоторого условия ДО начала шаблона (а не как сказано в начале урока "для проверки чем заканчивается шаблон"). И использование ретроспективной проверки после шаблона приводит вот к таким неожиданным и плачевным результатам. Проверка из видео работает так криво потому, что логически правильно связана не с шаблоном, а с кавычкой, перед которой идет, и гласит: "остановится тогда и только тогда, когда встретится кавычка, перед которой не будет пробела, иначе жрем все - и кавычки и пробелы и идем дальше".
@ПавлоКабай
@ПавлоКабай 3 жыл бұрын
с ума сойти.
@СергейЛадыка-ж7ю
@СергейЛадыка-ж7ю 2 жыл бұрын
Ты просто мастер Шифу!!! Спасибо за то, что ты делаешь
@SayXaNow
@SayXaNow Жыл бұрын
Очень плохой урок, ввели многих учеников в заблуждение. Ретроспективные проверки ПОСЛЕ тела шаблона даже индусы боятся использовать, дабы не вызвать гнев Будды. Нарушено золотое правило проверки: «текст, подходящий под условие проверки, не должен быть началом или концом найденного шаблоном результата, в противном случае такая проверка потеряет свой изначальный смысл применения, а именно: определить границы распространения шаблона, но не попасть в результат». А у вас что на 3:35? «Конец шаблона должен соответствовать выражению exp». В какой документации вы нашли сию непотребную трактовку? Если перефразировали под свой стиль материал с хабра - то вы неверно поняли, о каком шаблоне там идет речь в определении. А речь там шла о конце шаблона ТЕЛА ПРОВЕРКИ, куда будет установлен маркер начала поиска, а не о конце шаблона, к которому эта проверка будет применена. Ничуть не смутило далее, что закрывающий тег скрипта попал в результаты, как только изменили проверку на ретроспективную? Мы пытаемся найти всю информацию, которая МЕЖДУ тегами, не надо мне захватывать лишние куски. А потерянный пробел дальше 8:15? В смысле пробел игнорируется? Это полноценный символ, присутствующий между кавычками, и он является неотъемлемой частью информации внутри кавычек и вдруг «игнорируется». По какому такому праву? Ах, да по праву ретроспективной проверки в конце шаблона (сарказм). Потом вообще тихий ужас, когда поиск стал прыгать через кавычки, на которых был обязан остановится. Плохо, очень плохо. Причем было сделано уже несколько замечаний в комментариях, а вы даже не соизволили закрепить ответный комментарий «Извините мол, накосячил. Видео перезаливать не буду, но никогда не делайте так, как я в этом уроке, потому что ретроспективная проверка должна идти ПЕРЕД шаблоном. Для этого она и предназначена, а любое другое её использование - то от лукавого». А так в целом без хейта и негатива, с кем не бывает. Добра вам и процветания каналу.
@dmitriyaleksandrovich1867
@dmitriyaleksandrovich1867 11 ай бұрын
мне это напоминает манускрипты на египетских пирамидах, но мне надо в этом разобраться
@antonstepbystep
@antonstepbystep 3 жыл бұрын
Спасибо за видео! Очень хорошо объясняете
@beatrixx_kiddo
@beatrixx_kiddo 2 жыл бұрын
8:45 - я думаю, что в данном случае тут использовался классический синтаксис как по документация ретроспективной негативной проверки, поэтому так отобразилось. (?
@SayXaNow
@SayXaNow Жыл бұрын
Понимаю вашу боль и негодование. Преподавание материала не всегда означает его понимание. У автора явно наблюдается несоответствие с произнесенной им же золотой фразой на 10:16 - «нужно все четко и хорошо понимать, чтобы правильно формировать регулярные выражения». А так все хорошо начиналось еще одной золотой фразой в начале ролика: «непосредственно к шаблону, проверки не имеют никакого отношения» (имеется ввиду текст тела проверки) и тут же через минуту «тада-а-а-м!» - «вот это выражение exp должно быть частью проверяемого шаблона» - просто фейспалм обеими руками. А эта -прекрасная- богомерзкая РЕТРОСПЕКТИВНАЯ проверка (?
@beatrixx_kiddo
@beatrixx_kiddo Жыл бұрын
@@SayXaNow замечательный пост, спасибо, что заметили, а то я думала, что я глупенькая, не врубаюсь, ведь всем остальным все понятно. Но автору все равно респект, много других видео, где все супер
@kseniyabristol4295
@kseniyabristol4295 Жыл бұрын
в очередной раз божественная спасительная теория, которая все сложила по полочкам!
@karkozov
@karkozov Жыл бұрын
Спасибо я все
@jamjam3337
@jamjam3337 10 ай бұрын
👏👍
@vonravik2012
@vonravik2012 Жыл бұрын
Код не гибкий. Если в тексте будет несколько вхождений , то выдача будет содержать все от первого вхождения до последнего .
@Grigorev84
@Grigorev84 2 жыл бұрын
Ууух едрёная штука
@alex_satan
@alex_satan 2 жыл бұрын
Какая жесть! Взрыв мозга))) Подача материала, как всегда - топчик!
@bezborodovanton
@bezborodovanton 2 жыл бұрын
Привет, почему открывающий тег script не попадает в match?
@Ghotierr
@Ghotierr Жыл бұрын
(?
@АртемАглиуллин-в8ч
@АртемАглиуллин-в8ч 11 ай бұрын
крч я на завод пошел
@newvanya
@newvanya 4 ай бұрын
успех?
@ПавелКовальчук-с6б
@ПавелКовальчук-с6б 2 жыл бұрын
почему на 9:41 он говорит "и т к кавычки нету она дальше перебирает до ближайшей кавычки" , но она ведь есть, почему перебор игнорирует эту кавычку после пробела?
@johnmazepa
@johnmazepa Жыл бұрын
понимаю, что это видео 2020 года и теперь у Вас стандарты преподавания на совершенно другом уровне, но все равно пожалуюсь как у меня бомбит: 4:04 - регулярки сами по себе трудно читаемы, тема проверок совсем не проста для понимания, и Вы при всех этих вводных берете и просто копипастите заклинание из какого-то файла вместо того, чтобы по буковке все на экране прописывать, попутно объясняя значение каждого символа.
@beatrixx_kiddo
@beatrixx_kiddo 2 жыл бұрын
Добрый день. Впервые не поняла ничего. И так и этак подходила к этому материалу, никакого понимания нет. Также в разных группах по пайтону пыталась уточнить, никто тоже не понимает такого подхода. Хотела спросить у вас, это нетипичный метод проверок? Во всех других источниках другой синтаксис и определение. (?
@ФеорКа
@ФеорКа 6 ай бұрын
примеры попроще бы
@gpankov
@gpankov 2 жыл бұрын
я только в этом видео понял зачем круглые скобки)
@shyma_grasious
@shyma_grasious 3 жыл бұрын
хороший материал, жаль что у js немного не так все работает, сохраняющие скобки или именованные группы у JS совсем не то пальто
@АлексейМолодан-з3ф
@АлексейМолодан-з3ф 2 жыл бұрын
Спасибо огромное за уроки! они очень полезные! У меня возник вопрос: я хотел вывести все символы до буквы "i". И у меня это получилось только когда я написал следующее - text = "Картинка в тексте" match = re.findall(r".+?(?=i)", text) Но почему-то когда я писал вместо плюса "*" то в результате появлялся ещё - "" Не понимаю почему... это ведь в данном случае должно быть одно и тоже?
@JohnnyNightingale
@JohnnyNightingale Жыл бұрын
Прошло много времени, однако у меня есть некоторого рода догадка. В правильном варианте Вы используете "+", который означает "от единицы и до бесконечности". Результат таков, каков есть в связи с тем, что мы даём чёткое условие, что должны выделить все символы в аккурат до "i" при этом по наикротчайшему пути, поскольку выражение минорное. В случае же с "*", который означает "от нуля и до бесконечности", программа, возможно, находит пустоту между "i" и прочими символами и тоже её документирует. Мне кажется, дело в этом. То есть поскольку он проходится по каждому символу отдельно, а не по всей комбинации символов в совокупности, "*" допускает то, что символов попросту нет, поэтому программа и выводит эту пустоту сразу же после прочих символов.
@АлексейМолодан-з3ф
@АлексейМолодан-з3ф Жыл бұрын
@@JohnnyNightingale Спасибо, попробую вспомнить что я там творил)
@vrabosh
@vrabosh 4 жыл бұрын
Как бы ты нашел атрибуты meta файлов? например [('http-equive=....', 'content='...'), ('name=...', 'content=...')] ?
@Jingotube
@Jingotube 4 жыл бұрын
можно без регулярок, на питоне
@Vlad1998996
@Vlad1998996 3 жыл бұрын
Попрактиковавшись чуть, не понял отличая между match = re.findall(r"^([\w\W]+)", file, re.MULTILINE) match = re.findall(r"^([\w\W]+)(?=)", file, re.MULTILINE) Результат один и тот же. Здесь есть какая-то разница?
@selfedu_rus
@selfedu_rus 3 жыл бұрын
Да, во втором случае поиск останавливается до строчки . Это важно, если поиск продолжается дальше и эти символы могут иметь значения.
@ivan100kg
@ivan100kg 3 жыл бұрын
@@selfedu_rus а ещё объясните разницу тогда между и (?
@АркадийПоддубный
@АркадийПоддубный 7 ай бұрын
При всем уважении к автору, на мой (м. б., и не особо просвещенный) взгляд, пример с поиском пар ключ=значение не очень хорошо подходит для иллюстрации работы проверок. В этом примере для выполнения поставленной задачи никакие проверки (ни опережающие, ни ретроспективные) вообще не нужны. Шаблон r"([-\w]+)[ \t]*=[ \t]*[\"']([^\"']+)" без проверки в конце работает абсолютно так же, как и шаблон с проверкой в конце из примера в уроке: r"([-\w]+)[ \t]*=[ \t]*[\"']([^\"']+)(?
Леон киллер и Оля Полякова 😹
00:42
Канал Смеха
Рет қаралды 4,7 МЛН
Cheerleader Transformation That Left Everyone Speechless! #shorts
00:27
Fabiosa Best Lifehacks
Рет қаралды 16 МЛН
Global Classes and Exception in SAP BTP RAP | ZaranTech
2:06:09
ZaranTech DotCom
Рет қаралды 3
10 Советов новичкам программистам
12:22
Хауди Хо™ - Просто о мире IT!
Рет қаралды 1 МЛН
Не бойтесь регулярных выражений. Regex за 20 минут!
34:20
WebDev с нуля. Канал Алекса Лущенко
Рет қаралды 236 М.
Немного о булинах, True и  False
34:08
Python Russian
Рет қаралды 4 М.
Оператор "is" Python сложнее, чем вы думаете
11:02
Леон киллер и Оля Полякова 😹
00:42
Канал Смеха
Рет қаралды 4,7 МЛН