Изучение регулярных выражений JavaScript: как найти строку, но не другую

Регулярные выражения (regex) — это мощные инструменты для сопоставления шаблонов и манипуляций со строками в JavaScript. В этой статье мы углубимся в различные методы поиска определенной строки, исключая другую строку из поиска. Мы рассмотрим несколько примеров кода, чтобы эффективно проиллюстрировать каждый метод.

Метод 1: отрицательный просмотр
Утверждение отрицательного просмотра позволяет нам сопоставлять строку только в том случае, если за ней не следует другая конкретная строка. Вот пример:

const regex = /foo(?!bar)/;
const str = 'foo123 foobaz';
console.log(str.match(regex)); // Output: ['foo']

Метод 2: отрицательный просмотр
Подобно отрицательному просмотру, отрицательный просмотр позволяет нам сопоставлять строку только в том случае, если ей не предшествует другая конкретная строка. Вот пример:

const regex = /(?<!foo)bar/;
const str = 'foobar bazbar';
console.log(str.match(regex)); // Output: ['bar']

Метод 3: использование символа вертикальной черты (|) с отрицательным просмотром
Мы можем объединить отрицательный просмотр с символом вертикальной черты, чтобы исключить несколько строк. Вот пример:

const regex = /foo(?!bar|baz)/;
const str = 'foo123 foobaz foobar';
console.log(str.match(regex)); // Output: ['foo']

Метод 4: использование символа вертикальной черты (|) с отрицательным просмотром
Аналогично мы можем комбинировать отрицательный просмотр с символом вертикальной черты, чтобы исключить несколько строк. Вот пример:

const regex = /(?<!foo|baz)bar/;
const str = 'foobar bazbar quxbar';
console.log(str.match(regex)); // Output: ['bar']

Метод 5: использование групп захвата и отрицательного просмотра
Используя группы захвата и отрицательный просмотр, мы можем извлечь нужную строку, исключив при этом другую строку. Вот пример:

const regex = /foo(?!.*bar)/;
const str = 'foo123 foobaz foobar';
console.log(str.match(regex)[0]); // Output: 'foo'

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