Сheat-sheets «регулярные выражения»

    Ловите 2 плаката с регулярными выражениями в форматах A2 и A3.

    Плакаты просто идеальные, потому что красивые и полезные сразу. Распечатайте, повесьте, любуйтесь и пользуйтесь.

    Скачать плакат A2


    Скачать плакат A3


    Плакаты созданы на основе «Regular Expressions Cheat Sheet», автор Dave Child. Оригинал распространяется по лицензии Creative Commons 2.0, в исходный материал были внесены изменения.

    Мы в отделе маркетинга повесили на стену стоп-слова glvrd.ru. Давно знаем их наизусть, но иметь под рукой всегда приятно.



    Хотели сделать для вас ещё обоину на рабочий стол, “домики” на письменный и куб, который нужно склеить самому. Но все перессорились в спорах об удобстве.

    Расскажите, вы пользуетесь плакатами или предпочитаете cheat-sheet в другом формате? И какие регулярные выражения юзаете?
    FirstVDS / FirstDEDIC 67,36
    Компания
    Поделиться публикацией
    Комментарии 44
    • –2
      Ловите плюсы
      • +4
        Утверждения:

        > Плакаты просто идеальные, потому что красивые и полезные сразу.

        и

        > эти шаблоны основательно не проверялись

        противоречат друг другу.
        • –2
          Вы заметили ошибку? Подскажите где — поправим.
          • +4
            Да сразу навскидку :)
            \s — пробел.

            whitespace — это не только пробел.
            • –11
              Да, корректнее было бы «пробельные символы», но для новичка, на которого рассчитан такой cheat-sheets, хватит и пробела. А не совсем новичку понятно, что кроется под обобщением.
              • +10
                но для новичка… хватит и пробела
                Своеобразное у вас отношение к целевой аудитории.
                • 0
                  Не стоит оправдываться, все, что вы сделали — поменяли цвета.
                  • 0
                    но для новичка, на которого рассчитан такой cheat-sheets, хватит и пробела

                    А еще новичок может наделать багов из-за вас и потом не сможет понять, где они берутся, ведь \s — только пробел.
              • +4
                Туда же:

                \w слово
                \W не слово


                Что-что?
                • 0

                  Также есть:
                  \s пробельный символ
                  \S не пробельный символ


                  Просто заучите их и все.

                  • 0
                    Вы это кому и про что?
                    • 0
                      Вы это кому и про что?

                      Забудьте что это вообще было. (Не туда отправил.)

                  • 0
                    Поправили на плакатах, спасибо!
                  • +3
                    >alphanumeric
                    Почему только английские для русскоязычной ЦА? Нет примеров для кириллицы и описания «замечательной» работы регексов с утф-8.

                    >date
                    Уже ниже отписались.

                    >password
                    Лень перепечатывать и проверять (могу ошибаться), но, по-моему вот эта вот часть
                    .{8,15}

                    рушит всю логику вашего регекса (8-15 должно относиться к группе)

                    >email
                    Нонче доменные имена по типу «xn--e1aybc.xn--p1ai» считаются валидными, ваш регекс не пропустит адрес на таком домене.

                    Дальше не читал…
                    • –1
                      >password
                      Был неправ насчет группы. Тем не менее конкретно этот регекс принимает строки длиной больше 15 символов.

                      А вообще подобное из разряда «У вас есть проблема. Вы решили использовать регулярные выражения чтобы её решить. Теперь у вас две проблемы».

                      Если уж так хочется использовать регулярки в этом примере, то можно ограничиться следующим:

                      //pseudocode
                      if (pass.test(/^.{8,15}$/) && 
                      pass.test(/[0-9]/) && 
                      pass.test(/[A-Z]/) && 
                      pass.test(/[a-z]/))


                      Это по крайней мере будет более или менее читабельно выглядеть даже после просьбы вроде «а давай запретим пробелы и кавычки в паролях».
                      • –1
                        >alphanumeric
                        Почему только английские для русскоязычной ЦА? Нет примеров для кириллицы и описания «замечательной» работы регексов с утф-8.

                        Да, кириллических символов не хватает. Мы взяли лишь часть основных регулярных выражений, потому что все на плакат просто не войдут.
                        Регулярку для кириллических символов я пожалуй оставлю тут — [а-яА-Я]

                        >email
                        Нонче доменные имена по типу «xn--e1aybc.xn--p1ai» считаются валидными, ваш регекс не пропустит адрес на таком домене.

                        Шаблон проверки email на плакате подойдёт больше для понимания, как строятся регулярные выражения. Он учитывает не все варианты написания email адресов. Регулярное выражение для проверки любого email будет очень длинным.

                        • 0
                          Вы ещё и ё-ненавистники?
                          • 0
                            Да, ё лучше добавить отдельным символом — [а-яА-ЯёЁ]
                            • 0
                              А ведь еще есть їЇєЄіІ и другие символы кириллицы.
                              • 0
                                Технически эти символы есть в кириллическом наборе, но в обычном русском тексте их нет. Так как регулярные выражения пишутся под конкретные задачи, где-то эти символы пригодятся. Но добавлять их в каждую регулярку нет смысла.
                                • 0
                                  Значит, не называйте это «Регулярку для кириллических символов», если это покрывает исключительно один язык из группы.
                      • 0

                        У вас в именах файлов не бывает пробелов?

                        • 0

                          * - 0 или больше
                          [:space:] - пробельные символы


                          Как-то странно перемешаны базовые и продвинутые механизмы регулярок. Я бы отправил "утверждения", "подстановки" и "модификаторы" в конец страницы, они не так часто нужны как всё остальное.

                          • 0
                            * — 0 или больше
                            [:space:] — пробельные символы

                            Поправили — спасибо!

                            Как-то странно перемешаны базовые и продвинутые механизмы регулярок. Я бы отправил «утверждения», «подстановки» и «модификаторы» в конец страницы, они не так часто нужны как всё остальное.

                            Мы расположили блоки по размеру, чтобы верстка выглядела органично. Возможно, для большего удобства можно было расположить группы выражений в другом порядке, но тогда бы разрушилась конструкция самого плаката.
                      • 0

                        не понял зачем примеры выражений на плакате — предлагаете перепечатывать?

                        • 0
                          Шаблоны предназначены для ознакомительных целей, скорее чтобы понять, как работают регулярные выражения.
                        • +1
                          Вам бы еще дизайнера нормального найти…
                          • +1
                            Дроби в датах — это не по-русски. Наиболее общепринятый в России формат даты — ДД.ММ.ГГГГ. То есть, регвыр (\d{1,2}\.\d{1,2}\.\d{4})
                            • 0
                              Добавили в плакаты (\d{1,2}\.\d{1,2}\.\d{4}) — спасибо!
                            • +5
                              Не, ну ребят, зачем выдавать чужое за свое?
                              Вы в других цветах сделали? Не стыдно? Да еще и на habr постить…
                              Эта таблица доступна на www.exlab.net
                              Англоязычный оригинал на AddedBytes.com
                              • –1
                                Мы действительно взяли за образец этот чит-шит. Очень хотели сделать из него красивый и удобный для распечатки плакат.
                                Оригинальный материал распространяется по лицензии Creative Commons 2.0. — его можно видоизменять, копировать и распространять. Но вы правы, мы не дали ссылку на оригинал. Исправились — добавили её в материал и на плакаты.
                              • 0
                                Не люблю лезть не в своё дело и кого-либо обижать… но что-то мне кажется, что модераторы на хабре частенько стали пропускать «ненавязчивую рекламу», то «Тиньков» баннеры свои лепит по всей статье, хотя мог рассказывая про свои алгоритмы выбора разных баннеров сделать просто левые картинки и текст, но нет — налепили рекламу, то теперь здесь… или только я увидел строку с рекламой про аренду виртуальных серверов и понимаю что вся статья сделана только для этого?
                                • –1
                                  Да, у нас корпоративный блог, и как любая компания мы не прочь прорекламировать свои услуги. Но важнее всего — полезный контент. Поэтому в первую очередь плакат с регулярными выражениями. Из рекламы оставили только логотип.
                                • 0
                                  • берем первый cheat sheet из гугла, который влезает на A4
                                  • размазываем по A3
                                  • размазываем по A2
                                  • ...
                                  • PROFIT
                                  • –1
                                    Вы почти угадали, вот только наш дизайнер не просто размазывал, а верстал так, чтобы читы приобрели ритм и не склеивались в один пласт. Ведь это плакат, и он должен выглядеть приятно.
                                  • 0
                                    Шаблон email совсем не годится. Во-первых, цифры могут быть, во-вторых, после точки может быть больше 6-ти символов, типа company или consulting.
                                    • 0
                                      Поменяли шаблон в плакатах — спасибо!
                                      • 0
                                        Шаблон email совсем не годится
                                        Тема regexp и email — вообще отдельная. Примеры в разных источниках пишутся скорее для ознакомления, и при этом они практически все неправильные. И ваш вариант, и на плакате и в букварях…
                                      • 0
                                        Просто убийственные вырви-глаз разноцветные надписи на плакатах, которые ничего кроме раздражения не вызывают… пришлось поубирать.
                                        • +1
                                          1. Пожалуйста, больше никогда не вываливайте набор символов вроде
                                          #([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})
                                          в немоноширинной гарнитуре, это призыв к насилию и вообще экстремизм
                                          2. Электронные адреса не соответствуют никакой регулярной грамматике, а потому и нельзя проверить их никаким регулярным выражением ¯\_(ツ)_/¯
                                          3. То, что должно матчить HTML-теги сматчит не только HTML-теги.
                                          • 0
                                            Электронные адреса не соответствуют никакой регулярной грамматике, а потому и нельзя проверить их никаким регулярным выражением ¯_(ツ)_/¯

                                            Верно, но все же "((.*)^@(.*))" и "(mailto:(.*)^@(.*))"(Если это mailto-ссылка) можно использовать.


                                            То, что должно матчить HTML-теги сматчит не только HTML-теги.

                                            Верно полностью. Так как матчится XML-Tag.

                                            • 0
                                              Так можно и поматчить их как .*?, а чё, все правильные email адреса сматчатся, а на false-positive плевать. На практике, конечно, я согласен с тем, что матчить email адреса нужно по наличию ровно одного @ (ваш регэкс, кстати, сматчит и a@b@c), а затем просто слать email, если хочется удостовериться, что email валидный (и, более того, скорее всего настоящий).
                                              • 0
                                                (ваш регэкс, кстати, сматчит и a@b@c)

                                                Согласен, так и есть.

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

                                          Самое читаемое