Jump to content

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. ";

Share this post


Link to post
Share on other 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í;"
  }
}

 

Share this post


Link to post
Share on other 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!

 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.