Интеллектуальная генерация и объяснение регулярных выражений, поддержка различных распространенных шаблонов сопоставления
Преобразуйте ваши текстовые инструкции в формулы или получите объяснения формул.
Редактируйте Excel онлайн, общаясь с ИИ
Преобразуйте ваши текстовые инструкции в SQL-запросы с помощью ИИ.
Генерируйте код Excel VBA для автоматизации задач и создания пользовательских решений в Microsoft Excel.
Загрузите свой файл Excel и создайте красивые графики с помощью нашего генератора графиков на основе ИИ.
Преобразуйте ваш текст в красивые ментальные карты с помощью нашего генератора ментальных карт на основе ИИ. Легко редактируйте и настраивайте.
Используйте ИИ для интеллектуальной генерации и объяснения регулярных выражений, поддержка сопоставления текстовых шаблонов и проверки данных.
# Учебник по регулярным выражениям 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
/\d+(?=px)/ // Сопоставляет цифры, за которыми следует px
/\d+(?!px)/ // Сопоставляет цифры, за которыми не следует px
/(?<=\$)\d+/ // Сопоставляет цифры, которым предшествует $
/(?<!$)\d+/ // Сопоставляет цифры, которым не предшествует $
Выражение | Поведение сопоставления |
---|---|
.* |
Жадное (как можно больше) |
.*? |
Ленивое (как можно меньше) |
Пример:
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, '');
const domain = url.match(/https?:\/\/([^\/]+)/)[1];
Метод | Описание |
---|---|
test(str) |
Проверяет, соответствует ли строка шаблону |
exec(str) |
Возвращает объект результата сопоставления (с группами) |
str.match(re) |
Возвращает все совпадения (с глобальным флагом) |
str.replace() |
Заменяет совпавший контент |
str.split(re) |
Разбивает строку с использованием регулярного выражения |
str.search(re) |
Возвращает индекс первого совпадения |
Этот учебник систематически организует полный синтаксис и примеры практического применения регулярных выражений JavaScript. Он подходит для фронтенд-разработки, бэкенд-разработки, обработки текста и различных других сценариев использования. Освоение регулярных выражений может значительно повысить эффективность обработки строк.