У меня есть предзаголовок соответствия, и он проверяет наличие совпадений, но мне было интересно, как вы можете рассчитывать матчи. Любые советы приветствуются.
$message='[tag] [tag]'; preg_match('/\[tag]\b/i',$message);
например, подсчет этой строки сообщения должен привести к 2 совпадениям
$message='[tag] [tag]'; echo preg_match_all('/\\[tag\\](?>\\s|$)/i', $message, $matches);
дает 2
. Обратите внимание, что вы не можете использовать \b
потому что граница слова перед ]
, а не после.
См. Preg_match_all .
preg_match уже возвращает количество совпадений с образцом.
Однако это будет только 0 или 1, поскольку он останавливается после первого совпадения. Вместо этого вы можете использовать preg_match_all, поскольку он проверит всю строку и вернет общее количество совпадений.
Вы должны использовать preg_match_all
если хотите сопоставить все вхождения. preg_match_all
возвращает количество совпадений. preg_match
возвращает только 0 или 1, потому что он совпадает только один раз.
Я думаю, вам нужно preg_match_all . Он возвращает количество совпадений, которые он находит. preg_match останавливается после первого.