Logo Wand.Tools

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

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

Попробуйте наши другие бесплатные инструменты ИИ

Генератор формул Excel

Преобразуйте ваши текстовые инструкции в формулы или получите объяснения формул.

Ассистент Excel ИИ

Редактируйте Excel онлайн, общаясь с ИИ

Генератор SQL-запросов

Преобразуйте ваши текстовые инструкции в SQL-запросы с помощью ИИ.

Генератор кода Excel VBA

Генерируйте код Excel VBA для автоматизации задач и создания пользовательских решений в Microsoft Excel.

Генератор графиков Excel

Загрузите свой файл Excel и создайте красивые графики с помощью нашего генератора графиков на основе ИИ.

Генератор ментальных карт

Преобразуйте ваш текст в красивые ментальные карты с помощью нашего генератора ментальных карт на основе ИИ. Легко редактируйте и настраивайте.

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

Используйте ИИ для интеллектуальной генерации и объяснения регулярных выражений, поддержка сопоставления текстовых шаблонов и проверки данных.

Учебник по регулярным выражениям JavaScript

  # Учебник по регулярным выражениям JavaScript (Полный синтаксис + Общие примеры)
  
  > Эта статья представляет собой полный учебник по регулярным выражениям JavaScript (RegExp), от основ до продвинутых тем. Он включает правила синтаксиса, распространенные метасимволы, флаги, утверждения, группировку, жадное и ленивое сопоставление и применим для фронтенд-разработки, веб-скрапинга, валидации форм и других сценариев. Подходит для изучения и использования как начинающими, так и опытными пользователями.
  
  ## Базовый синтаксис регулярных выражений
  
  ### Два способа создания регулярного выражения
  
  ```js
  const regex1 = /abc/;             // Литеральный способ
  const regex2 = new RegExp('abc'); // Способ с использованием конструктора

Общие флаги

Флаг Описание
g Глобальное сопоставление
i Регистронезависимое сопоставление
m Многострочное сопоставление
s Позволяет . сопоставлять перевод строки (ES2018)
u Поддерживает Unicode (ES6)
y “Прилипающее” сопоставление (ES6)

Пример:

const re = /hello/gi;
const str = 'Hello hello';
console.log(str.match(re)); // ["Hello", "hello"]

Метасимволы и наборы символов

Общие метасимволы

Символ Значение
. Сопоставляет любой символ (кроме перевода строки)
\d Сопоставляет цифру [0-9]
\D Сопоставляет нецифровой символ
\w Сопоставляет “словесный” символ (буквы, цифры или подчеркивание)
\W Сопоставляет не “словесный” символ
\s Сопоставляет пробельный символ
\S Сопоставляет непробельный символ
\b Сопоставляет границу слова
\B Сопоставляет не-границу слова
\\ Сопоставляет обратную косую черту

Наборы символов и диапазоны

/[abc]/     // Сопоставляет 'a' или 'b' или 'c'
/[a-z]/     // Сопоставляет строчные буквы
/[A-Z]/     // Сопоставляет заглавные буквы
/[0-9]/     // Сопоставляет цифры
/[^abc]/    // Сопоставляет любой символ, кроме a, b или c

Квантификаторы (Повторение)

Квантификатор Значение
* Сопоставляет предыдущий элемент 0 или более раз
+ Сопоставляет предыдущий элемент 1 или более раз
? Сопоставляет предыдущий элемент 0 или 1 раз
{n} Сопоставляет ровно n раз
{n,} Сопоставляет как минимум n раз
{n,m} Сопоставляет как минимум n раз, как максимум m раз

Пример:

/\d{4}/.test("2025");       // true
/ab{2,4}c/.test("abbbc");   // true

Группировка и захват

/(abc)/         // Захватывающая группа
/(abc){2}/      // Захватывающая группа, повторяющаяся
/(?:abc)/       // Незахватывающая группа
/(a)(b)(c)/     // Несколько захватывающих групп

Извлечение совпадений:

const match = /(hello) (\w+)/.exec("hello world");
console.log(match[1]); // hello
console.log(match[2]); // world

Утверждения (Утверждения нулевой ширины)

Положительный предпросмотр (Positive Lookahead)

/\d+(?=px)/     // Сопоставляет цифры, за которыми следует px

Отрицательный предпросмотр (Negative Lookahead)

/\d+(?!px)/     // Сопоставляет цифры, за которыми не следует px

Просмотр назад (Lookbehind) (ES2018+)

/(?<=\$)\d+/    // Сопоставляет цифры, которым предшествует $
/(?<!$)\d+/    // Сопоставляет цифры, которым не предшествует $

Жадное vs. Ленивое сопоставление

Выражение Поведение сопоставления
.* Жадное (как можно больше)
.*? Ленивое (как можно меньше)

Пример:

const str = '<p>text</p><p>more</p>';
const greedy = /<p>.*<\/p>/;
const lazy = /<p>.*?<\/p>/g;

console.log(str.match(greedy)); // ['<p>text</p><p>more</p>']
console.log(str.match(lazy));   // ['<p>text</p>', '<p>more</p>']

Примеры общих сценариев использования

Валидация электронной почты

/^[\w.-]+@[a-zA-Z\d.-]+\.[a-zA-Z]{2,}$/.test("[email protected]");

Валидация номера мобильного телефона (Материковый Китай)

/^1[3-9]\d{9}$/.test("13888888888");

Удалить все пробельные символы

const cleaned = str.replace(/\s+/g, '');

Извлечь домен из URL

const domain = url.match(/https?:\/\/([^\/]+)/)[1];

Сводка методов регулярных выражений

Метод Описание
test(str) Проверяет, соответствует ли строка шаблону
exec(str) Возвращает объект результата сопоставления (с группами)
str.match(re) Возвращает все совпадения (с глобальным флагом)
str.replace() Заменяет совпавший контент
str.split(re) Разбивает строку с использованием регулярного выражения
str.search(re) Возвращает индекс первого совпадения

Заключение

Этот учебник систематически организует полный синтаксис и примеры практического применения регулярных выражений JavaScript. Он подходит для фронтенд-разработки, бэкенд-разработки, обработки текста и различных других сценариев использования. Освоение регулярных выражений может значительно повысить эффективность обработки строк.