Devexz Posted October 5, 2013 at 12:41 PM Report #527715 Posted October 5, 2013 at 12:41 PM (edited) 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 😕 ) Edited October 5, 2013 at 01:07 PM by Devexz Contador de calorias: caloriaspordia.com
Devexz Posted October 5, 2013 at 01:49 PM Author Report #527718 Posted October 5, 2013 at 01:49 PM (edited) 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 October 5, 2013 at 01:49 PM by Devexz Contador de calorias: caloriaspordia.com
I-NOZex Posted October 5, 2013 at 02:08 PM Report #527720 Posted October 5, 2013 at 02:08 PM normal... tens de usar \n ou \r ... isso que ai tens para ele não é quebra de linha B2R » Beat2Revolution v3.0b | Regista e divulga-nos beat2revolution.net
HappyHippyHippo Posted October 5, 2013 at 02:40 PM Report #527723 Posted October 5, 2013 at 02:40 PM $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 Portugol Plus
Devexz Posted October 5, 2013 at 02:57 PM Author Report #527726 Posted October 5, 2013 at 02:57 PM 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
HappyHippyHippo Posted October 5, 2013 at 06:53 PM Report #527737 Posted October 5, 2013 at 06:53 PM 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 1 Report IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now