Как стать автором
Обновить

Комментарии 44

НЛО прилетело и опубликовало эту надпись здесь
Утверждения:

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

и

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

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

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

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

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


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

НЛО прилетело и опубликовало эту надпись здесь
Вы это кому и про что?

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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


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

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

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

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

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

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

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

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


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

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

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

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

Зарегистрируйтесь на Хабре, чтобы оставить комментарий