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

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

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


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


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

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



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

Расскажите, вы пользуетесь плакатами или предпочитаете cheat-sheet в другом формате? И какие регулярные выражения юзаете?

Комментарии (41)


  1. Reeze
    22.09.2017 11:42
    -2

    Ловите плюсы


  1. andy_p
    22.09.2017 12:08
    +4

    Утверждения:

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

    и

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

    противоречат друг другу.


    1. FirstJohn Автор
      22.09.2017 12:28
      -2

      Вы заметили ошибку? Подскажите где — поправим.


      1. redfs
        22.09.2017 12:41
        +4

        Да сразу навскидку :)

        \s — пробел.

        whitespace — это не только пробел.


        1. FirstJohn Автор
          22.09.2017 13:25
          -11

          Да, корректнее было бы «пробельные символы», но для новичка, на которого рассчитан такой cheat-sheets, хватит и пробела. А не совсем новичку понятно, что кроется под обобщением.


          1. redfs
            22.09.2017 15:58
            +10

            но для новичка… хватит и пробела
            Своеобразное у вас отношение к целевой аудитории.


          1. nightvich
            23.09.2017 00:31

            Не стоит оправдываться, все, что вы сделали — поменяли цвета.


          1. TheShock
            23.09.2017 05:36

            но для новичка, на которого рассчитан такой cheat-sheets, хватит и пробела

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


            1. FirstJohn Автор
              23.09.2017 13:15

              Поправили на плакатах.


      1. kloppspb
        22.09.2017 15:09
        +4

        Туда же:

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


        Что-что?


        1. AntonAlekseevich
          23.09.2017 06:13

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


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


          1. kloppspb
            23.09.2017 10:45

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


            1. AntonAlekseevich
              23.09.2017 20:25

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

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


        1. FirstJohn Автор
          23.09.2017 13:16

          Поправили на плакатах, спасибо!


      1. haldagan
        22.09.2017 22:13
        +3

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

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

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

        .{8,15}

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

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

        Дальше не читал…


        1. haldagan
          23.09.2017 01:30
          -1

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

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

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

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


          Это по крайней мере будет более или менее читабельно выглядеть даже после просьбы вроде «а давай запретим пробелы и кавычки в паролях».


        1. FirstJohn Автор
          23.09.2017 13:17
          -1

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

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

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

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


          1. Bhudh
            25.09.2017 04:36

            Вы ещё и ё-ненавистники?


            1. FirstJohn Автор
              26.09.2017 06:25

              Да, ё лучше добавить отдельным символом — [а-яА-ЯёЁ]


      1. stychos
        23.09.2017 06:36

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


      1. niya3
        23.09.2017 06:44

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


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


        1. FirstJohn Автор
          23.09.2017 13:21

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

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

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

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


  1. GerrAlt
    22.09.2017 13:44

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


    1. FirstJohn Автор
      23.09.2017 13:29

      Шаблоны предназначены для ознакомительных целей, скорее чтобы понять, как работают регулярные выражения.


  1. savostin
    22.09.2017 14:51
    +1

    Вам бы еще дизайнера нормального найти…


  1. dnf
    22.09.2017 19:37
    +1

    Дроби в датах — это не по-русски. Наиболее общепринятый в России формат даты — ДД.ММ.ГГГГ. То есть, регвыр (\d{1,2}\.\d{1,2}\.\d{4})


    1. FirstJohn Автор
      23.09.2017 13:21

      Добавили в плакаты (\d{1,2}\.\d{1,2}\.\d{4}) — спасибо!


  1. nightvich
    23.09.2017 00:25
    +5

    Не, ну ребят, зачем выдавать чужое за свое?
    Вы в других цветах сделали? Не стыдно? Да еще и на habr постить…

    Эта таблица доступна на www.exlab.net
    Англоязычный оригинал на AddedBytes.com


    1. FirstJohn Автор
      23.09.2017 13:22
      -1

      Мы действительно взяли за образец этот чит-шит. Очень хотели сделать из него красивый и удобный для распечатки плакат.
      Оригинальный материал распространяется по лицензии Creative Commons 2.0. — его можно видоизменять, копировать и распространять. Но вы правы, мы не дали ссылку на оригинал. Исправились — добавили её в материал и на плакаты.


  1. Alex_1985
    23.09.2017 13:22

    Не люблю лезть не в своё дело и кого-либо обижать… но что-то мне кажется, что модераторы на хабре частенько стали пропускать «ненавязчивую рекламу», то «Тиньков» баннеры свои лепит по всей статье, хотя мог рассказывая про свои алгоритмы выбора разных баннеров сделать просто левые картинки и текст, но нет — налепили рекламу, то теперь здесь… или только я увидел строку с рекламой про аренду виртуальных серверов и понимаю что вся статья сделана только для этого?


    1. FirstJohn Автор
      23.09.2017 13:23
      -1

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


  1. frantic16
    23.09.2017 13:23

    • берем первый cheat sheet из гугла, который влезает на A4
    • размазываем по A3
    • размазываем по A2
    • ...
    • PROFIT


    1. FirstJohn Автор
      23.09.2017 13:23
      -1

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


  1. Bubzik
    23.09.2017 13:24

    Шаблон email совсем не годится. Во-первых, цифры могут быть, во-вторых, после точки может быть больше 6-ти символов, типа company или consulting.


    1. FirstJohn Автор
      23.09.2017 13:24

      Поменяли шаблон в плакатах — спасибо!


    1. redfs
      23.09.2017 14:00

      Шаблон email совсем не годится
      Тема regexp и email — вообще отдельная. Примеры в разных источниках пишутся скорее для ознакомления, и при этом они практически все неправильные. И ваш вариант, и на плакате и в букварях…


  1. REALpredatoR
    23.09.2017 14:04

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


  1. captain_obvious
    23.09.2017 18:50
    +1

    1. Пожалуйста, больше никогда не вываливайте набор символов вроде
    #([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})
    в немоноширинной гарнитуре, это призыв к насилию и вообще экстремизм
    2. Электронные адреса не соответствуют никакой регулярной грамматике, а потому и нельзя проверить их никаким регулярным выражением ?\_(?)_/?
    3. То, что должно матчить HTML-теги сматчит не только HTML-теги.


    1. AntonAlekseevich
      23.09.2017 18:59

      Электронные адреса не соответствуют никакой регулярной грамматике, а потому и нельзя проверить их никаким регулярным выражением ?_(?)_/?

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


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

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


      1. captain_obvious
        23.09.2017 19:21

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


        1. AntonAlekseevich
          23.09.2017 19:53

          (ваш регэкс, кстати, сматчит и a@b@c)

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