Ir para conteúdo
Fernando José

Separar # do texto

Recommended Posts

Olá pessoal,


Preciso ler 3 hashtag do meio do texto, alguém poderia me ajudar? Dar um caminho.

 

O padrão vem assim:

 

$texto = "
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris eu iaculis augue, eget hendrerit lorem. Vestibulum id dui rhoncus, sagittis libero in, lacinia diam. Sed id ultricies justo. Ut consequat mauris est, et iaculis turpis semper vitae. 

Quisque vel turpis bibendum, blandit nunc eu, dignissim nisi. Nullam vehicula, risus a consequat aliquam, massa massa consectetur tortor, ac venenatis ante metus eu nisi. Nunc quis ipsum non lorem luctus efficitur vitae et lorem.

#hospital: Santa Rita, Santa Casa, Hosp Corp;
#metro: Paraiso, Sé;
#shopping: Avenida Center, Catuaí;

Suspendisse hendrerit, tortor sed consectetur sollicitudin, urna urna sollicitudin nisi, ac facilisis lacus quam non nulla. Quisque lobortis id sem non laoreet. Integer varius, eros porttitor iaculis eleifend, mauris nisi rutrum metus, non aliquam ipsum magna sagittis sapien. Etiam ultrices nulla in ante lobortis, tempor fermentum libero laoreet. ";

Compartilhar este post


Link para o post
Compartilhar em outros sites

Use regex

 

$re = '/^.*#+\w*/m';
$str = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris eu iaculis augue, eget hendrerit lorem. Vestibulum id dui rhoncus, sagittis libero in, lacinia diam. Sed id ultricies justo. Ut consequat mauris est, et iaculis turpis semper vitae. 

Quisque vel turpis bibendum, blandit nunc eu, dignissim nisi. Nullam vehicula, risus a consequat aliquam, massa massa consectetur tortor, ac venenatis ante metus eu nisi. Nunc quis ipsum non lorem luctus efficitur vitae et lorem.

#hospital: Santa Rita, Santa Casa, Hosp Corp;
#metro: Paraiso, Sé;
#shopping: Avenida Center, Catuaí;

Suspendisse hendrerit, tortor sed consectetur sollicitudin, urna urna sollicitudin nisi, ac facilisis lacus quam non nulla. Quisque lobortis id sem non laoreet. Integer varius, eros porttitor iaculis eleifend, mauris nisi rutrum metus, non aliquam ipsum magna sagittis sapien. Etiam ultrices nulla in ante lobortis, tempor fermentum libero laoreet. ";';

preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);


var_dump($matches);

Saída

 

array(3) {
  [0]=>
  array(1) {
    [0]=>
    string(9) "#hospital"
  }
  [1]=>
  array(1) {
    [0]=>
    string(6) "#metro"
  }
  [2]=>
  array(1) {
    [0]=>
    string(9) "#shopping"
  }
}

Se quiser até o ponto e virgula mude a variavel $re para 

$re = '/^.*#.* .+$/m';

Saida será

 

array(3) {
  [0]=>
  array(1) {
    [0]=>
    string(45) "#hospital: Santa Rita, Santa Casa, Hosp Corp;"
  }
  [1]=>
  array(1) {
    [0]=>
    string(21) "#metro: Paraiso, Sé;"
  }
  [2]=>
  array(1) {
    [0]=>
    string(35) "#shopping: Avenida Center, Catuaí;"
  }
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
2 horas atrás, Williams Duarte disse:

Use regex

 


$re = '/^.*#+\w*/m';
$str = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris eu iaculis augue, eget hendrerit lorem. Vestibulum id dui rhoncus, sagittis libero in, lacinia diam. Sed id ultricies justo. Ut consequat mauris est, et iaculis turpis semper vitae. 

Quisque vel turpis bibendum, blandit nunc eu, dignissim nisi. Nullam vehicula, risus a consequat aliquam, massa massa consectetur tortor, ac venenatis ante metus eu nisi. Nunc quis ipsum non lorem luctus efficitur vitae et lorem.

#hospital: Santa Rita, Santa Casa, Hosp Corp;
#metro: Paraiso, Sé;
#shopping: Avenida Center, Catuaí;

Suspendisse hendrerit, tortor sed consectetur sollicitudin, urna urna sollicitudin nisi, ac facilisis lacus quam non nulla. Quisque lobortis id sem non laoreet. Integer varius, eros porttitor iaculis eleifend, mauris nisi rutrum metus, non aliquam ipsum magna sagittis sapien. Etiam ultrices nulla in ante lobortis, tempor fermentum libero laoreet. ";';

preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);


var_dump($matches);

Saída

 


array(3) {
  [0]=>
  array(1) {
    [0]=>
    string(9) "#hospital"
  }
  [1]=>
  array(1) {
    [0]=>
    string(6) "#metro"
  }
  [2]=>
  array(1) {
    [0]=>
    string(9) "#shopping"
  }
}

Se quiser até o ponto e virgula mude a variavel $re para 


$re = '/^.*#.* .+$/m';

Saida será

 


array(3) {
  [0]=>
  array(1) {
    [0]=>
    string(45) "#hospital: Santa Rita, Santa Casa, Hosp Corp;"
  }
  [1]=>
  array(1) {
    [0]=>
    string(21) "#metro: Paraiso, Sé;"
  }
  [2]=>
  array(1) {
    [0]=>
    string(35) "#shopping: Avenida Center, Catuaí;"
  }
}

 

 

Excelente Williams, funcionou.

 

Muito obrigado!

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.