TGViewer
dev notes dev notes @junsenior · 1.39K subscribers
Post #159 2.75K
Привет, котаны

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

Регулярки ― очень мощный инструмент, но очень ресурсоёмкий: сложно запомнить все конструкции, а если и запомнил ― всё равно приходится себя проверять. Вот бы иметь возможность строить регулярки так же, как Doctrine строит sql-запросы через свой билдер.

Хорошая новость: такая библиотека есть ― https://github.com/bassim/super-expressive-php

Пример из github:

Допустим, мы хотим отловить в строке шестнадцатеричный код 0xC0D3. Если бы нам пришлось составлять регулярное выражение, то вышло бы что-то похожее: /^(?:0x)?([A-Fa-f0-9]{4})$/. С библиотекой это можно сделать так:

 SuperExpressive::create()
->startOfInput()
->optional()->string('0x')
->capture()
->exactly(4)->anyOf()
->range('A', 'F')
->range('a', 'f')
->range('0', '9')
->end()
->end()
->endOfInput()
->toRegexString();


Что на выходе даст тоже самое регулярное выражение. Здорово! Подтяну в свои рабочие проекты, посмотрим, как оно покажет себя на практике :)
GitHub GitHub - bassim/super-expressive-php: super-expressive-php is a php library that allows you to build regular expressions in almost… super-expressive-php is a php library that allows you to build regular expressions in almost natural language - bassim/super-expressive-php
More from @junsenior
  1. Sep 28, 2026Сошлись две вещи. Первая - мой проект safemap.ai, про который я уже писал выше - интеракти…
  2. Sep 17, 2026Post #356
  3. Sep 15, 2026Увидел тут в x.com статистику вакансий по PHP и статистику вакансий по hh.ru в целом. Я на…
  4. Sep 12, 2026Вдохновившись проектом, где делали интерактивную карту с тем, как работает Postgres (писал…
  5. Sep 8, 2026OpenAI выложили блогпост https://openai.com/index/navier-stokes-solution/ Мы публикуем реш…
  6. Sep 8, 2026Если кто не знал, вокруг этого сейчас разгорается очень большой скандал с OpenAI. Кратко,…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →