В 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, расширяя возможности манипулирования строками.
Не забудьте выбрать наиболее подходящий метод, исходя из ваших конкретных требований и характера строки, с которой вы работаете.