Regex UCR: создание различных диалектов регулярных выражений

Как сохранить простой пользовательский интерфейс Regex UCR, поддерживая при этом почти все функции, которые поддерживает сам Regex?

Вы можете прочитать Часть 1 и Часть 2 перед этим, чтобы понять, о чем идет речь.

Давайте начнем с самого простого вида редактирования.

Regex UCR имеет диалект по умолчанию под названием Simplified Regex, который является наименьшим общим знаменателем всех диалектов регулярных выражений.

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

Редактирование существующего регулярного выражения

Хорошо, допустим, у вас уже есть регулярное выражение, которое вы хотите отредактировать. Скажем, вы идентифицируете десятичное число в Python.Что-то вроде -3,53e4, довольно маленькое число.

Вы вставляете его в область регулярных выражений (текст) Regex UCR. Ваше выражение оценивается и автоматически преобразуется в синтаксис визуального регулярного выражения.

Мы не можем обрабатывать именованные группы в общем простом регулярном выражении, поэтому редактор

  • выделяет нераспознанные части и
  • спросит вас, какой диалект вы хотели бы использовать сейчас.

Итак, вы выбираете Python в раскрывающемся списке.

Хорошо, теперь Regex UCR находится в режиме регулярных выражений Python. Предупреждение удалено из пользовательского интерфейса.

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

Отладка вашего регулярного выражения

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

На панели инструментов есть кнопка «Тест». Вы нажимаете на нее.

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

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

Спасибо Байрону Хоувенсу и Сэму Салливану за обсуждение, которое привело к созданию дизайна для нескольких диалектов.

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

Свяжитесь со мной, чтобы присоединиться к нашему каналу Slack, если вы хотите работать над этим вместе. Наш репозиторий на github также открыт. На данный момент у нас есть каркас пользовательского интерфейса на основе React. Мы тепло приветствуем любую помощь в преодолении разрыва между дизайном и кодом.

См. также:Часть 4. Планы на будущее — лицензирование и архитектура, первые шаги

Основные истории о регулярном выражении UCR: Часть 1, Часть 2