preg_replace Remover texto de comentário no conteúdo

No conteúdo do post, insira um texto como abaixo

abc acb acb acb  text to remove  abc acb acb acb abc acb acb acb  text to remove  abc acb acb acb abc acb acb acb  text to remove  abc acb acb acb 

Eu quero apenas obter

 abc acb acb acb abc acb acb acb abc acb acb acb abc acb acb acb abc acb acb acb abc acb acb acb 

E eu corro esse código

  function remove($content){ preg_match_all("/.*/", $content, $matches); var_dump($matches); $content= preg_replace("/.*/", '', $content); return $content; } add_filter('the_content', 'remove', 1); 

mas não funciona. Qual é o problema ?

O resultado real do código acima é

 abc acb acb acb abc acb acb acb 

E var_dump é um resultado, não 3 resultados

 array 0 =>  text to remove  abc acb acb acb abc acb acb acb  text to remove  abc acb acb acb abc acb acb acb  text to remove  

O caminho certo é

 array 0 =>  text to remove  1 =>  text to remove  2 =>  text to remove  

Solutions Collecting From Web of "preg_replace Remover texto de comentário no conteúdo"

O problema que você está tendo com seu código é essa linha:

 $conten = preg_replace("/.*/", '', $content); 

$conten é atribuído, mas $content é retornado.

 function remove( $content ) { return preg_replace( '/.*/', '', $content ); } 

Após a edição da pergunta:

O resultado real do código acima é

 abc acb acb acb abc acb acb acb 

.* é ganancioso. Encontra todas as partidas até o último .

.*? não é ganancioso. Encontra todas as correspondências até o primeiro .

Use esta function:

 function remove( $content ) { return preg_replace( '/.*?/', '', $content ); }