Что делает этот визуализатор реджекса
Регулярные выражения для большинства людей просто для записи: легко набирать, трудно читать через неделю. Этот инструмент анализирует ваш шаблон в синтаксическое дерево и показывает его тремя способами. Диаграмма железной дороги рисует схему в виде пути, которым можно следовать слева направо, с ветвями для чередования, петлями для повторения и помеченными ящиками для групп. Объяснение на простом языке проходит через каждый токен ("одна или несколько цифр", "названный год группы", "не сопровождается"). И сниппеты кода показывают, как использовать точный шаблон с правильным уходом в JavaScript, Python, Go, Java, C#, PHP и Rust. Тестирующая строка показывает совпадения, когда вы печатаете.
Как пользоваться
- Введите или вставьте шаблон. Вы можете включить слайсы и флаги, как
/^\d{4}-\d{2}$/gmили ввести флаги отдельно. - Следуйте схеме железной дороги, чтобы увидеть общую форму узора.
- Прочитайте список объяснений для описания токен-по-токену.
- Введите тестовую строку, чтобы увидеть, что совпадает и какие группы захватывают что.
- Копируйте готовый фрагмент на своем языке.
Читать схему железной дороги
- Закругленные ящики - это буквальный текст; квадратные ящики - это классы символов, такие как цифр или один из az.
- Путь, разделяющийся на параллельные рельсы, является чередованием (
a|b). - Рельс, который закручивается под коробкой, означает "повторить"; рельс, который обходит коробку, означает "необязательно".
- Детальные кадры - это группы; группы захвата пронумерованы, а названные группы показывают свое имя.
- Окружающие кадры рисуются как маркированные кадры, потому что они проверяют текст, не потребляя его.
Советы
- Предпочтительнее
\dи классы символов, чем длинные чередования для скорости и ясности. - Ленивые количественные показатели (
*?,+?) показаны с "как можно меньшим количеством" в объяснении. - При переносе шаблонов помните, что движок RE2 Go не поддерживает обходные или обратные ссылки; фрагмент Go предупреждает вас, когда ваш шаблон использует их.
- Избегайте обратных слайшей в обычных литералах строки или используйте сырые строки (
r"..."в Python, backticks в Go), как это делают фрагменты.