Регулярные выражения (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()
, мы можем эффективно находить и подсчитывать совпадения в тексте. Регулярные выражения — это мощные инструменты, имеющие множество применений при обработке текста. Итак, экспериментируйте с этими методами и раскройте весь потенциал регулярных выражений!