Изучение различных методов подсчета подстроок с точным совпадением в PHP

В PHP функция substr_countобычно используется для подсчета вхождений подстроки в строку. Однако по умолчанию учитываются как точные, так и частичные совпадения. В этой статье мы рассмотрим различные методы подсчета подстрок с точным совпадением в PHP, а также приведем примеры кода.

Метод 1: использование регулярных выражений
Регулярные выражения предоставляют мощный способ сопоставления шаблонов в строках. Чтобы подсчитать точные совпадения с помощью регулярных выражений, мы можем использовать функцию preg_match_all. Вот пример:

$string = "Hello, hello, hello";
$substring = "hello";
$matches = preg_match_all('/\b' . preg_quote($substring, '/') . '\b/', $string, $count);
echo "Exact match count: " . $count[0];

Метод 2. Расчленение и подсчет
Другой подход заключается в разбиении строки на массив слов и последующем подсчете точных совпадений с помощью функции array_count_values. Вот пример:

$string = "Hello, hello, hello";
$substring = "hello";
$words = explode(" ", $string);
$wordCount = array_count_values($words);
$exactMatchCount = isset($wordCount[$substring]) ? $wordCount[$substring] : 0;
echo "Exact match count: " . $exactMatchCount;

Метод 3: использование strposи substr
Функция strposможет использоваться для поиска позиции первого вхождения элемента. подстрока внутри строки. Повторно используя strposи substr, мы можем подсчитать точные совпадения. Вот пример:

$string = "Hello, hello, hello";
$substring = "hello";
$count = 0;
$pos = 0;
while (($pos = strpos($string, $substring, $pos)) !== false) {
    $count++;
    $pos = $pos + strlen($substring);
}
echo "Exact match count: " . $count;

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

$string = "Hello, hello, hello";
$substring = "hello";
$count = mb_substr_count($string, $substring);
echo "Exact match count: " . $count;

В этой статье мы рассмотрели различные методы подсчета подстрок с точным совпадением в PHP. Мы рассмотрели методы использования регулярных выражений, разложения и подсчета, strposи substrи mb_substr_countдля поддержки многобайтовых строк. В зависимости от вашего конкретного случая использования и требований вы можете выбрать наиболее подходящий метод.

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

Не забудьте выбрать наиболее подходящий метод, исходя из ваших конкретных требований и характера строки, с которой вы работаете.