Представьте, что вам нужно скрыть часть номер под звездочками. Заменить +79999999999 на +799****9999 не трудно, а теперь представьте, что масок номеров не одна, а на много больше, номера эти как российские, так и канадские или любые другие. В этой функции я постарался захватить как можно больше номеров.
Читать полностью »
Рубрика «regexp» - 2
Скрываем часть номера телефона
2020-03-23 в 3:46, admin, рубрики: javascript, Phone, regexp, Регулярные выраженияПрофессиональный лексический анализ на регулярных выражениях
2019-08-07 в 6:11, admin, рубрики: algorithms, DFA, java, lexer, nfa, regex, regexp, syntax analysis, syntax highlight, tokenizer, tokenizing, Алгоритмы, Компиляторы, Программирование, Регулярные выраженияСинтаксический анализ текста всегда начинается с лексического анализа или tokenizing-а. Существует простой способ решить эту задачу практически для любого языка с помощью регулярных выражений. Еще одно применение старым добрым regexp-ам.
Собираем логи фаервола Mikrotik в базу данных
2018-10-20 в 18:44, admin, рубрики: logging, mikrotik, regexp, rsyslog, Настройка Linux, Сетевое оборудование, системное администрированиеДобрый день.
Хочу рассказать как легко и непринужденно можно настроить сервер сбора метаданных сетевого трафика для маршрутизаторов Микротик.
Цель: Целью будет, хранение «пережеванных» логов фаервола в базе данных, для последующего анализа.
Средства: Для реализации подойдет любой свежий дистрибутив Linux с rsyslogd v8 и выше, возможно предложенный синтаксис будет работать и на v7. Так же нам потребуется СУБД, я выбрал mariadb. Прирост БД будет варьироваться от количества журналируемых правил, потому размер накопителя на ваше усмотрение, в моем случае журналируются 30-40 правил, что в день составляет примерно 1200 тысяч строк. За месяц использования БД включая индексы выросла до 3,8Гб.
Механика: Маршрутизатор отправляет лог на удаленный сервер по UDP. Сервер rsyslog с помощью регулярных выражений проводит очистку строк от лишней информации, формирует SQL вставку и отправляет её в СУБД. СУБД, с помощью триггера до вставки, проводит дополнительную очистку и разделение полей, которые не удалось разобрать в rsyslog.
Читать полностью »
Регулярные выражения для самых маленьких
2017-11-27 в 13:46, admin, рубрики: javascript, junior developer, php, regexp, Программирование, Регулярные выраженияПривет.
Под катом я расскажу основы работы с регулярными выражениями. На эту тему написано много теоретических статей. В этой же статье я решил сделать упор на количество примеров. Мне кажется, что это лучший способ показать возможности этого инструмента.
Некоторые из них для наглядности будут показаны на примере языков программирования PHP или JavaScript, но в целом они работают независимо от ЯП.
Из названия понятно, что статья ориентирована на самый начальный уровень — тех, кто еще ни разу не использовал регулярные выражения в своих программах или делал это без должного понимания.
В конце статьи я в двух словах расскажу, какие задачи нельзя решить регулярными выражениями и какие инструменты для этого стоит использовать.
Поехали!
SQL Server поддерживает регулярные выражения при проверке ограничений, не всегда нужны триггеры
2017-10-24 в 11:29, admin, рубрики: constraints, Microsoft SQL Server, regex, regexp, sql, sql server, ограничение, ограничения, Регулярные выраженияКто-то задал такой вопрос:
Мне нужно создать таблицу group со столбцом code. Можно ли добавить ограничение на столбец, которое допускало бы только буквенные символы (D, M, O, P или T) с последующими двумя цифровыми символами?
Ему ответили:
Вы не можете этого сделать обычным способом — MS SQL Server поддерживает проверку ограничений, но лишь в виде мин/макс значения INT, длины строки и т.п. То, что вам нужно, — проверка на основе регулярного выражения, которую SQL Server не поддерживает. Теоретически можно сделать .NET вставку, развернуть на SQL Server и заставить его использовать такую проверку — нетривиальная задача.
Попробуем разобраться
Не смотря на то, что SQL server не поддерживает регулярные выражения в полной мере, но поставленную выше задачу можно без проблем решить и на T-SQL. Вот так будет выглядеть это регулярное выражение
[DMOPT][0-9][0-9]
Оно допускает только буквенные символы (D, M, O, P или T) с последующими двумя цифровыми символами. Ладно, хватит разговоров, давайте перейдем к коду
Читать полностью »
ECMAScript 6. Регулярные выражения с поддержкой Unicode
2017-09-22 в 9:57, admin, рубрики: ecmascript 6, html, html5, javascript, regexp, Unicode, Регулярные выраженияВ ECMAScript 6 представлены два новых флага для регулярных выражений:
yвключает режим «липкого» сопоставления.uвключает различные связанные с Unicode опции.
В данной статье объясняется влияние флага u. Эта статья будет Вам полезна, если Вы знакомы с Unicode-проблемами в Javascript.
Читать полностью »
Блокировка загрузки файлов по расширению. Mikrotik RouterOS
2017-02-08 в 9:23, admin, рубрики: Drop, Extensions, firewall, Layer7, mikrotik, regexp, Сетевые технологии, системное администрированиеПривет! Существует много оборудования и ПО, которое может заниматься фильтрацией трафика. В моем случае это Mikrotik RB3011UiAS-RM. Задача была следующей: запретить загрузку определенных форматов файлов.
Вроде простая задача, и быстрое гугление привело к решению блокировать соединения через Layer7, ибо Web-Proxy работает только с HTTP. И примеры были, но работать так как надо — не работало.
Читать полностью »
Как перестать бояться и полюбить синтаксический анализ?
2016-11-01 в 6:00, admin, рубрики: .net, 1С, C#, irony, regexp, sql, Анализ и проектирование систем, анализатор кода, Блог компании Кнопка, бухгалтерия, бухгалтерия и программисты, грамматики, грамматический парсер, грамматический разбор, Регулярные выражения, синтаксический анализ, метки: ironyКак часто, программируя очередную бизнес-фичу, вы ловили себя на мысли: есть же на Земле люди, которые пишут базы данных, распознают лица на фотографиях, делают фреймворки и реализуют интересные алгоритмы. Почему в моей работе всё сводится к перекладыванию из одной таблицы БД в другую, вызову http-сервисов, верстке html-формы и прочей «бизнес-лапше»? Может быть я занимаюсь чем-то не тем или работаю не в той компании?

Хорошая новость в том, что интересные задачи окружают нас повсюду. Сильное желание и смелость творят чудеса на пути к цели — задача любого масштаба станет вам под силу, стоит просто начать её делать.
Недавно мы написали синтаксический анализатор языка запросов 1С и его транслятор в обычный SQL. Это позволило нам выполнять запросы к 1С без участия 1С :) Минимальная рабочая версия на regexp-ах получилась недели за две. Ещё месяц ушёл на полноценный парсер через грамматики, разгребание нюансов структуры БД разных 1С-объектов и реализацию специфических операторов и функций. В результате решение поддерживает практически все конструкции языка, исходный код выложен на GitHub.
Под катом мы расскажем, зачем нам это понадобилось, как удалось, а так же затронем несколько интересных технических подробностей.
Типографируем названия организаций
2016-07-14 в 10:38, admin, рубрики: antiPe, bautyCo, javascript, regexp, поисковые технологии, Регулярные выражения, типографика, хранение данныхЛюбые благородные начинания UI-дизайнера и верстальщика хоть как-то навести порядок в списках названий организаций разбивается о копи/паст неграмотного пользователя. Так ли всё плохо и можем ли мы чем-нибудь им помочь? Попробуем разобраться…

Читать полностью »
Небольшая статья о том, как можно решить одну и ту же задачу несколькими способами. Предназначена для новичков в Python и программировании.
В качестве примера взят простой случай — реализация диалога подтверждения какой-либо операции. Программа задает пользователю вопрос Вы уверены? [Д/н (Y/n)]:, на который требуется ответить, введя одно из восьми допустимых значений (Д, д, Н, н, Y, y, N, n).

