Рубрика «regex»

Карточка компании — документ, который в России присылают друг другу все: поставщики, заказчики, подрядчики. В нём ИНН, КПП, адрес и банковские реквизиты. Формата у карточки нет: кто‑то делает таблицу в Word, кто‑то строку в PDF, кто‑то лист Excel. Подписи пишут как угодно: «Р/с», «Расчетный счет №», «р.сч.», «Счёт получателя».

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

Почему не работает «искать по подписи»

Первая версия была очевидной: найти слово «БИК» и взять 9 цифр после него. Она ломалась в трёх местах.

  1. Читать полностью »

В настоящее время Perl обделяется вниманием: о нём мало что и где можно услышать и увидеть. При этом Perl действительно уникальный язык программирования, который может предложить что-то новое, и особенности которого сильно выделяют его среди других. И сегодня я вам о нём поведаю, а также расскажу о его фичах с примерами его примения.

Perl

Perl

Читать полностью »

Привет! Представьте ситуацию: вы нашли крутой сервис, регистрируетесь, вводите свой email my.name+coolservice@gmail.com (ведь вы, как и я, любите порядок во входящих) и… получаете ошибку «Некорректный email». Знакомо? Уверен, что да.

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

Как должно работать: магия субадресации по RFC 5322Читать полностью »

Регулярные выражения простыми словами. Часть 3 - 1

Разработчики делятся на три типа: тех, кто уже понимает регулярные выражения и порой решает сложные задачи одной строкой; тех, кто все еще боится их и всячески избегает; и тех, кто уже прочитал первую и вторую части этой серии статей и полон оптимизма разобраться с этими магическими письменами. Эта статья специально для третьих, чтобы обратно их напугать, ведь в этой части мы рассмотрим одну из самых сложных, но в буквальном смысле захватывающих тем.Читать полностью »

Изобретение

Я хочу поделиться своим изобретением, которое позволяет вам использовать только одно регулярное выражение, которое будет искать подстроку в строке с определенным условием. Если хотите, называйте это циклом в RegEx, которого раньше не существовало!

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

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

Шахматный движок на 84688 регулярных выражениях - 1

В праздничные выходные мне пришло в голову, что я давно не занимался чем-то бессмысленным. Представляю вашем вниманию... Regex ChessЧитать полностью »

Введение

Как-то я исследовал способы наиболее эффективного определения простоты числа и наткнулся на следующий код:

public static boolean isPrime(int n) {
    return !new String(new char[n]).matches(".?|(..+?)\1+");
}

Он меня заинтриговал. Хоть это, возможно, и не самый эффективный способ, но определённо один из наименее очевидных, поэтому мне стало любопытно. Каким образом соответствие регулярному выражению .?|(..+?)1+ должно показать, что число непростое (после его преобразования в унарную систему счисления)?

Читать полностью »

Регулярные выражения простыми словами. Часть 1 - 1

Разработчики делятся на два типа: тех, кто уже понимает регулярные выражения и порой решает сложные задачи одной строкой, и тех, кто все еще боится и всячески их избегает. Эта статья специально для вторых, чтобы им было проще стать первыми. Она либо поможет преодолеть «регекспофобию», либо усугубит ее. В любом случае, добро пожаловать под кат.Читать полностью »

Если вы отказались от регулярных выражений, то теперь у вас три проблемы - 1


Известная шутка программистов гласит, что если решение вашей проблемы включает в себя парсинг текста при помощи регулярного выражения, то теперь у вас есть две проблемы. Некоторые программисты, прочитав шутку, решают попробовать иной подход. Возможно, регулярные выражения не так уж нужны. Возможно, задачу можно решить простым split строки или чем-то подобным. Однако другие могут задуматься немного глубже и задаться вопросом: «А если я сделаю нечто настолько дерзкое, что в результате получу три проблемы?» Мой пост написан в таком духе!

В нём используется код на Python, однако его легко можно адаптировать под любой язык с поддержкой функций высшего порядка.
Читать полностью »

Unicode – это набор символов, целью которого является определение всех символов и глифов всех человеческих языков, живых и мертвых. Поскольку всё больше и больше программ должны поддерживать несколько языков или просто любой язык, юникод в последние годы приобретает всё большую популярность. Использование различных наборов символов для разных языков может быть слишком обременительным для программистов и пользователей.

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

Поддержка юникод-совместимых регулярных выражений

https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js