q0099

q0099

На Пикабу
15К рейтинг 87 подписчиков 227 подписок 49 постов 39 в горячем
Награды:
10 лет на Пикабу
54

Час Бугайского. Константин Семин. Агитпроп 12.01.2019

Небольшая новогодняя открытка из Вашингтона могла бы остаться незамеченной, но поскольку опубликовала её газета "The Hill" — "Холм" — самое массовое периодическое издание из тех, что пишут для американского конгресса об американском конгрессе, такое послание трудно не заметить. "Управляя распадом России" — авторская колонка политолога Януша Бугайского.

Показать полностью
46

Сорванное перемирие. Константин Семин. Агитпроп 08.12.2018

Нож под столом. Протокольные фотографии совместного ужина китайского и американского лидеров должны были успокоить весь мир — большая драка откладывается по крайней мере до марта.

1

Программно генерируемые регулярные выражения

Здравствуйте. Вопрос к программистам.


Сталкивались ли вы когда-нибудь в своей практике с программами, в которых регулярные выражения генерировались бы во время рантайма. Писали ли ты такие программы сами? Как вы думаете, хорошее ли это решение?

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

Примерный листинг (не реальный, но очень похоже):

var codeParser = new CodeParser();

codeParser.Prefix = new [] { "0001", "0002", "A001", "A002" };

codeParser.Suffix = CodeParser.Suffixes.Before1995 | CodeParser.Suffixes.Public | CodeParser.Suffixes.Restricted;

codeParser.Postfix = CodeParser.Postfixes.Default;

codeParser.Extensions = new [] { "cdr", "dwg", "ai" };

codeParser.Format = @"^.+\s*<prefix>-<postfix>-(<suffix>)\.<extension>$"

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

^.+\s*\(?\s*(?<prefix>0001|0002|A001|A002)-(?<postfix>[А-Я]{3})-(?<suffix>A\d{4}AA|Z9999ZZ)\s*\)?\s*\.(?<extension>cdr|dwg|ai)$

Это выражение распознаёт номер в, допустим, следующем названии файла (самих файлов тысячи, формат записи номенклатурного номера разный, для чего приходится прогонять имена файлов по нескольким парсерам):

Подвеска передняя правая (0001-АБВ-A1234AA).dwg

Скажу честно - в данном конкретном случае этот подход работает на практике и он действительно экономит мне время и нервы (не хочу представлять как я писал бы регулярку под все форматы написания номера, а потом шерстил бы бесконечные списки файлов в поисках тех, которые регулярка не распознала). Более того, с самим выражением я не работаю, а передаю в парсер список имён, на что мне парсер отдаёт не просто названия отобранных файлов, а структуры с названием, разобранным номером и некоторыми очень полезными данными, которые удаётся вынуть из номера (в каких проектах используется, замены, модификации и прочее).


И всё таки у меня вопрос - а правильно ли здесь использовать регулярное выражение? За исключением того момента, что раз работает - значит правильно.


P.S.: никто не собирается нарушать главное правило программиста и переписывать что-то, что и так работает (да и кто бы дал мне это переписывать), просто хочу знать мнение своих более опытных коллег.

Показать полностью
63

Немного артов по готовящейся к выходу игре "Death Stranding"

Автор: Teoft

DeviantArt: https://www.deviantart.com/teoft

Немного юмора:

Отсылка к мему с Doge (https://knowyourmeme.com/memes/doge)

Отсылка к мультсериалу "He-Man and the Masters of the Universe" и мему "He-Man Sings" (https://knowyourmeme.com/memes/he-man-sings-heyyeyaaeyaaaeya...)

Показать полностью 15
45

Предложение по постам "без рейтинга"

Здравствуйте.

Сегодня случилась ситуация: пользователь добавил пост, указал тег "без рейтинга", пост набрал большое количество голосов и комментариев, но потом этот тег другие пользователи своим решением удалили (сейчас этот тег на голосовании за возвращение) из-за чего может возникнуть неверное впечатление, что ТС решил всех "обмануть, чтобы набрать классы".


В связи с этим, несколько предложений:

- запретить удаление пользователями тега "без рейтинга"

- вынести "без рейтинга" отдельным пунктом в меню создания поста

- помечать посты без рейтинга специальным значком


П.С.: извиняюсь, если подобные предложения уже были.

П.П.С.: ссылку на пост убрал, ибо политика что многим (справедливо) не по нраву.

338

Фото фигуры Сэма Бриджеса с E3 2018

На выставке Electronic Entertainment Expo 2018 проходящей на этой неделе (12.06.2018 - 14.06.2018) в Лос-Анджелесе, в павильоне Sony была выставлена фигура Сэма Портера Бриджеса (в исполнении актёра Нормана Ридуса) - главного персонажа игры Death Stranding, разрабатывающийся студией Kojima Productions под руководством знаменитого игрового дизайнера Хидео Кодзимы (серия игр Metal Gear Solid) для PlayStation 4.

А это уже рендер из твиттера Кодзимы (https://twitter.com/HIDEO_KOJIMA_EN/status/10074944042343096...)

Ну и напоследок: сам Кодзима примеряет экипировку Сэма.

Показать полностью 20
Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества