Подсчет совпадений с помощью регулярных выражений: руководство по поиску шаблонов в тексте

Регулярные выражения (regex) – это мощные инструменты для поиска и управления текстом. Они позволяют определять шаблоны и искать совпадения внутри строк. В этой статье блога мы рассмотрим различные методы подсчета совпадений с использованием регулярных выражений, а также примеры кода. Итак, приступим!

Метод 1: использование функции match()
Функция match() – это удобный способ поиска совпадений с использованием регулярного выражения. Он возвращает массив совпадений, и мы можем просто посчитать длину этого массива, чтобы получить значение.

const text = "The quick brown fox jumps over the lazy dog.";
const pattern = /the/gi;
const matches = text.match(pattern);
console.log(matches.length); // Output: 2

Метод 2. Использование функции exec()в цикле.
Функция exec() – это еще один подход к подсчету совпадений. Он возвращает массив совпадений и обновляет свойство lastIndex, чтобы отслеживать позицию поиска. Мы можем использовать цикл, чтобы найти все совпадения и увеличить переменную счетчика.

const text = "She sells seashells by the seashore.";
const pattern = /sh/gi;
let matchesCount = 0;
let match;
while ((match = pattern.exec(text)) !== null) {
    matchesCount++;
}
console.log(matchesCount); // Output: 4

Метод 3: использование функции split().
Функция split()может быть умело использована для подсчета совпадений путем разделения текста на основе шаблона регулярного выражения и подсчета полученных результатов. длина массива минус единица.

const text = "How much wood would a woodchuck chuck if a woodchuck could chuck wood?";
const pattern = /\bwood\b/gi;
const matchesCount = text.split(pattern).length - 1;
console.log(matchesCount); // Output: 2

Метод 4: использование функции replace().
Функция replace()может использоваться для подсчета совпадений путем замены их пустой строкой и подсчета количества сделанных замен..

const text = "Peter Piper picked a peck of pickled peppers.";
const pattern = /p/gi;
const matchesCount = (text.match(pattern) || []).length;
console.log(matchesCount); // Output: 9

Метод 5: использование функции search()
Функция search()возвращает индекс первого найденного совпадения. Используя цикл и обновляя свойство lastIndex, мы можем подсчитать все совпадения.

const text = "She sells seashells by the seashore.";
const pattern = /sh/gi;
let matchesCount = 0;
let matchIndex;
while ((matchIndex = text.search(pattern)) !== -1) {
    matchesCount++;
    text = text.slice(matchIndex + 1);
}
console.log(matchesCount); // Output: 4

В этой статье мы рассмотрели пять различных методов подсчета совпадений с регулярными выражениями. Используя функции match(), exec(), split(), replace()и search(), мы можем эффективно находить и подсчитывать совпадения в тексте. Регулярные выражения — это мощные инструменты, имеющие множество применений при обработке текста. Итак, экспериментируйте с этими методами и раскройте весь потенциал регулярных выражений!