совпадение совпадений

У меня есть предзаголовок соответствия, и он проверяет наличие совпадений, но мне было интересно, как вы можете рассчитывать матчи. Любые советы приветствуются.

$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 останавливается после первого.