◯ Бесплатно: 5 раз/день • Сброс через 17h 10m
Разработка и Технические

Генератор регулярных выражений

Преобразуйте описание на простом английском в рабочее регулярное выражение для JavaScript, Python, PCRE, Go, Java или .NET — с пошаговым объяснением токенов, тестовыми примерами и учётом граничных случаев, которые шаблон намеренно принимает или отклоняет.

Узнать больше

Генератор регулярных выражений создает регулярное выражение по описанию того, что должно совпадать, в том диалекте, который вы используете — JavaScript, Python, PCRE, RE2 от Go, Java или .NET — и затем проверяет его: каждый токен объясняется, ваши примеры строк, которые должны и не должны совпадать, проверяются, а шаблон поставляется с дополнительными тестовыми случаями, фрагментом кода на вашем языке и примечанием о граничных случаях, которые он намеренно исключает. Он также сообщает, когда требование невозможно выполнить в выбранном диалекте, например look‑behind в Go, вместо того чтобы молча генерировать шаблон, который не компилируется.

0 / 3000
0 / 10000
0 / 10000

✓ Бесплатно — без регистрации и без банковской карты.

Разработчики

Только корпоративные email‑адреса

Валидация регистрации, отклоняющая бесплатные веб‑почтовые домены

Показать предпросмотр ввода и вывода

Ввод

Что должен совпадать шаблон?
Email addresses on the company domains acme.com and acme.co.uk, case-insensitive. Reject everything else, including gmail and addresses with nothing before the @.
Диалект регулярных выражений
JavaScript / TypeScript
Примеры, которые должны совпадать (по одному в строке)
[email protected] [email protected]
Примеры, которые не должны совпадать (по одному в строке)
[email protected] @acme.com
Строгость
Практичная (читаемая, охватывает типичные случаи)

Вывод (фрагмент)

```javascript
/^[a-z0-9._%+-]+@acme\.(?:com|co\.uk)$/i
```

**Flags:** `i` — домены и локальная часть сравниваются без учёта регистра.

| Token | Meaning |
|---|---|
| `^` … `$` | вся строка должна быть адресом |
| `[a-z0-9._%+-]+` | локальная часть: один или более символов: буквы, цифры или обычные знаки пунктуации |
| `@acme\.` | буквальный @acme. — точка экранирована |
| `(?:com\|co\.uk)` | ровно один из двух доменов компании |

| Input | Expected | Why |
|---|---|---|
| `[email protected]` | match | простая локальная часть, разрешённый домен |
| `[email protected]` | match | точка в локальной части, второй домен |
| `[email protected]` | no match | домен не в списке |
| `@acme.com` | no match | пустая локальная часть |
| `[email protected]` | no match | заякорено, ничего не может следовать |…
Для всех

Календарные даты в формате ISO 8601

Извлекать даты из строк журналов перед их разбором

Показать предпросмотр ввода и вывода

Ввод

Что должен совпадать шаблон?
ISO calendar dates like 2026-09-20 anywhere inside a line of text. Month 01-12, day 01-31. Do not match 2026-13-01 or 26-09-20.
Диалект регулярных выражений
Python (re)
Примеры, которые должны совпадать (по одному в строке)
deployed 2026-09-20 at 05:01 2024-02-29
Примеры, которые не должны совпадать (по одному в строке)
2026-13-01 26-09-20
Строгость
Строгая (отклоняет всё недопустимое)

Вывод (фрагмент)

```python
r"(?<!\\d)(\\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])(?!\\d)"
```

**Flags:** нет. Шаблон не заякорен, так как дата находится внутри строки.

| Token | Meaning |
|---|---|
| `(?<!\\d)` | не предшествует цифра — отклоняет `12026-09-20` |
| `(\\d{4})` | четырёхзначный год, захвачен |
| `(0[1-9]\\|1[0-2])` | месяц 01‑12 |
| `(0[1-9]\\|[12]\\d\\|3[01])` | день 01‑31 |
| `(?!\\d)` | не следует за цифрой |

**Edge cases:** шаблон не учитывает длину месяцев — `2026-02-31` совпадает. Проверьте с помощью `datetime.date.fromisoformat()` после извлечения, как показано в примере использования…

Результаты Генератор регулярных выражений появятся здесь

Ожидайте аккуратные блоки кода с комментариями и краткое пояснение изменений.

Как использовать Генератор регулярных выражений

  1. Опишите, что шаблон должен совпадать, простым языком, включая то, что он должен отклонять — «корпоративные адреса электронной почты, а не бесплатные веб‑почты» лучше, чем просто «почта».
  2. Выберите диалект, в котором будете использовать шаблон. Go, JavaScript, Python, Java, .NET и PCRE различаются поддержкой look‑around, обработкой Unicode и экранированием.
  3. Вставьте несколько строк, которые должны совпадать, и несколько, которые не должны, по одной в строке. Шаблон проверяется по каждому из них.
  4. Выберите уровень строгости: «Практичная» для читаемых шаблонов, охватывающих обычный ввод, «Строгая» для валидации, «Гибкая» — когда вы захватываете широко и фильтруете позже.

Сценарии использования

1

Проверка ввода форм, например почтовых индексов, номеров автомобилей или внутренних форматов идентификаторов

2

Извлечение дат, номеров счетов или ссылок на заказы из строк журналов и писем

3

Создание поиска‑замены для массовой очистки в редакторе или скрипте миграции

4

Объяснение устаревшего шаблона, оставленного коллегой в кодовой базе, путем вставки его в качестве описания

5

Преобразование шаблона из одного диалекта в другой при переносе скрипта из Python в Go

Советы для достижения лучших результатов

  • Дайте примеры, которые не должны совпадать — они больше помогают уточнить шаблон, чем примеры, которые должны совпадать.
  • Если вам нужен шаблон внутри строкового литерала языка, запросите соответствующий вариант: экранирование входит в ответ.
  • Для валидации, видимой пользователю, выбирайте «Strict» и прочитайте раздел о крайних случаях перед выпуском.
  • Шаблон с вложенным повторением на недоверенных данных может зависнуть ваш сервер; вывод предупреждает, когда такой риск присутствует.

Часто задаваемые вопросы

Какие варианты регекс‑синтаксиса поддерживаются?

JavaScript и TypeScript, модуль re в Python, PCRE (PHP, Ruby, Perl), движок RE2 в Go, Java и .NET. Шаблон записывается как литерал в выбранном языке с необходимым для него экранированием.

Проверяется ли шаблон?

Каждый предоставленный вами пример включён в тестовую таблицу с ожидаемым результатом и объяснением. Инструмент также добавляет граничные случаи — пустой ввод, пробелы, почти совпадения — чтобы вы видели, что может пройти.

Почему он сообщает, что моё требование невозможно в Go?

Движок RE2 в Go гарантирует линейное время сопоставления и поэтому не поддерживает look-ahead, look-behind и обратные ссылки. Когда описание требует один из этих элементов, инструмент сообщает об этом и предлагает ближайший шаблон, который RE2 может скомпилировать, обычно с небольшим проверочным кодом.

В чём разница между Practical, Strict и Lenient?

Практичные шаблоны читаемы и охватывают те входные данные, которые вы действительно видите. Strict‑шаблоны отклоняют любую недопустимую строку, ценой увеличения длины и читаемости — используйте их для валидации. Lenient‑шаблоны захватывают широко, чтобы затем отфильтровать в коде — используйте их для извлечения из «грязного» текста.

Может ли он объяснить уже имеющийся у меня регекс?

Да. Вставьте существующий шаблон в описание с пометкой «explain this», и вывод пошагово разберёт его токен за токеном, перечислит, что он совпадает, и укажет на любые риски катастрофической обратной трассировки.

🔒
Ваша конфиденциальность защищена

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

Похожие инструменты

Попробовать агента

API АвтоматизацияОпишите автоматизацию простым языком → схема REST/вебхук → примеры curl + Python + Node → привязка…Попробовать агента →

Похожий процесс

Создайте фирменный стильОт концепции до целостной визуальной системыЗапустить процесс →