Gurzi Posted July 4, 2006 at 01:55 PM Report #36143 Posted July 4, 2006 at 01:55 PM Bem , juro que já tentei de tudo e isto é de longe complicado.. Descam à terra senhores programadores e expliquem me isto, ando há dois dias a tentar entender.. Ora : $email = "phpisnice@portugalaprogramar.pt" agora quero achar o domínio proveniente do email ou seja $dominio = "portugalaprogramar.pt" então fazia algo do género <?php $email ="phpisnice@portugalaprogramar.pt"; preg_match("/não sei o que por aqui/",$email,$matches); echo "dominio = $matches[0] /[1][2][3] conforme o que vocês usarem.. Ora a minha dúvida é a seguinte se eu fizer preg_match("/[a-z]+/",$email,$matches); estou a dizer que ele vai considerar tudo o que seja caracteres de 'a' a 'z' . mas ele só me dá o primeiro ou seja phpisnice. Queria juntamente retirar tudo inclusivé o @ restando só portugalaprogramar.pt . Ando nisto há dois dias, alguem sabe ou vou continuar a partir a cabeça ? ? edit : Já consigo dar @portugalaprogramar.pt , falta tirar o @, <?php $email ="phpisnice@portugalaprogramar.pt"; preg_match("/([^a-z]+)([^@]?)([a-z]+(.)[a-z]+)/",$email,$matches); echo $matches[0]; ?>
Rui Carlos Posted July 4, 2006 at 02:11 PM Report #36145 Posted July 4, 2006 at 02:11 PM a expressão regular (em lex) acho que é esta: [a-z]+\@[a-z]+\.[a-z]+ no teu caso acho que falta o '+', '[a-z]' representa apenas uma ocorrência, enquanto que '[a-z]+' representa uma ou mais ocorrências (e '[a-z]*' 0 ou mais ocorrências) Rui Carlos Gonçalves
Gurzi Posted July 4, 2006 at 02:16 PM Author Report #36146 Posted July 4, 2006 at 02:16 PM Exacto, já percebi o porquê, já consigo fazer tudo excepto tirar o @, está aqui a falhar-me algo ?, pelo que penso , ou aprendi, tirar do match algo é com um ^ dentro ou seja ([^@]?) assim.. mas não está a funcionar ? mais umas horitas, enfim muito obrigado, Gurzi 😛
Rui Carlos Posted July 4, 2006 at 02:22 PM Report #36147 Posted July 4, 2006 at 02:22 PM a expressão '[^@]' acho que significa ler um caracter qualquer excepto o '@'. o operador '?' significa que pode ler a expressão que está antes ou nada. mas nunca usei expressões regulares em php, apenas usei com processadores de linguagens. Rui Carlos Gonçalves
Gurzi Posted July 4, 2006 at 02:25 PM Author Report #36148 Posted July 4, 2006 at 02:25 PM Está certo o que disseste, mas eu ao dizer [^@] estou a dizer para ele listar tudo menos o @ ou seja , supostamente o @ ia à vida, o que não está acontecer ? Já me disseram que ninguem usa isto, mas eu consigo ver aqui uma grande utilidade, por exemplo para ver se emails estão correctos, se os ips estão correctos, etc...
Rui Carlos Posted July 4, 2006 at 02:40 PM Report #36151 Posted July 4, 2006 at 02:40 PM Está certo o que disseste, mas eu ao dizer [^@] estou a dizer para ele listar tudo menos o @ ou seja , supostamente o @ ia à vida, o que não está acontecer ? penso que está enganado, acho que qualquer caracter vai "à vida" excepto o '@'... experimenta retirar o '^' e vê se funciona... Rui Carlos Gonçalves
Gurzi Posted July 4, 2006 at 04:01 PM Author Report #36166 Posted July 4, 2006 at 04:01 PM Consegui fazendo assim $string = "joaoxxx@gmail.com"; $tiago=preg_match("/@[a-z]+.[a-z]+/",$string,$matches); $tiago=$matches[0]; $tiago =preg_match("/[a-z]+.[a-z]+/",$tiago,$done); echo $done[0]; aleluia
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