Jump to content
Devexz

Pregmatch frase

Recommended Posts

Devexz

Boas p@p,

Tenho esta frase:

$frase = " [blblbabal] isto é uma frase";

E agora como é que faço para obter o texto que está após o último parêntesis recto "]" ?

Ou seja quero obter "isto é uma frase" sem aquele espaço inicial no meio.

Estava a tentar com regex mas ainda não consegui, alguma sugestão?

Edit: acho que estou quase lá

preg_match('/]\s*(.*$)/i',$frase,$matches);

Mais um Edit:

preg_match('/]\s*(.*$)/i',$frase,$matches);

Bem cheguei a este regex, ( mas parece que seja muito básico :confused: )

Edited by Devexz

Contador de calorias: caloriaspordia.com

Share this post


Link to post
Share on other sites
Devexz

Mais um problema, a frase se tiver mudanças de linhas estas são retiradas

Ex:

$frase = " [blblbabal]		 isto é uma
frase";

O output é sem quebra de linhas...

Edited by Devexz

Contador de calorias: caloriaspordia.com

Share this post


Link to post
Share on other sites
HappyHippyHippo
$frase = " [blblbabal]           isto é uma
frase";

$stripped = trim(str_replace(array("\n", "\r"), "", preg_match("/(?<=]).*/i", $frase)[0]));
echo $stripped; // "isto é uma frase"


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
Devexz

Ok, eu cheguei a isto:

preg_match('/\](.*)/si',$emailBody,$matches);

$frase = " [blblbabal]		   isto é uma
frase";

$stripped = trim(str_replace(array("\n", "\r"), "", preg_match("/(?<=]).*/i", $frase)[0]));
echo $stripped; // "isto é uma frase"

Thanks hippo a tua maneira também funcionou.

Agora a questão é qual seria a maneira mais "correta" ( obvio que será do hippo, mas...) ?

Outra coisa, deixa me ver se percebi a lógica do teu código:

- primeiro fazer o preg_match para obter o texto que está a partir do ]

- Depois substituir os \n \r com ""

- E de seguida fazer trim para remover os espaços vazios do inicio e do fim.


Contador de calorias: caloriaspordia.com

Share this post


Link to post
Share on other sites
HappyHippyHippo

Agora a questão é qual seria a maneira mais "correta" ( obvio que será do hippo, mas...) ?

depende sempre da possibilidade de aparecer código que sai fora do padrão escolhido

Outra coisa, deixa me ver se percebi a lógica do teu código:

- primeiro fazer o preg_match para obter o texto que está a partir do ]

- Depois substituir os \n \r com ""

- E de seguida fazer trim para remover os espaços vazios do inicio e do fim.

sim é isso que o meu código faz

  • Vote 1

IRC : sim, é algo que ainda existe >> #p@p

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

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.