Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

chamuska

expressão regular

Recommended Posts

Pessoal, não costumo usar expressões regulares (na verdade nem sei direito como usa rrsrsrs), mas estou sendo obrigado a usar para resolver um problema com urls e a situação é a seguinte.... se tenho uma url com esse formato 'http://dominio.com.algumacoisa/dados175-dados-nome-sobrenome' como que faço para descartar o 'http://dominio.com.algumacoisa/' e pegar somente o '175' e 'nome-sobrenome' e descartar o 'dados' ?

 

Como falei, manjo nada de expressões e de tudo que tentei eu consegui pegar apenas o 'http://dominio.com.algumacoisa/' e mostrar duas vezes usado preg_match ( :clap: ) rsrsrsr!

 

Não vou postar as expressões que tentei pq da até vergonha sauhsauhs, na verdade, foram tantas q nem adianta mesmo!

 

 

 

Vlw!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa noite,

 

Desculpa o "desistímulo" ai pessoal que postou acima, é que estava de bobeira e resolvi ajudar o nosso amigo.

 

Mas o correto é você seguir o que nossos amigos acima orientaram, para você aprender de verdade, ok?

 

Segue minha solução:

<?php

// url exemplo
$url = 'http://dominio.com.algumacoisa/dados171-dados-andre-krebs';
	
// pegando somente o path (dados171-dados-andre-krebs) na url
$path = parse_url($url, PHP_URL_PATH);
	
// expressão regular para pegar somente o código(171) na string $path
$er_code = '/[0-9]/';
preg_match_all($er_code, $path, $matches);

// código encontrado
$code = implode($matches[0]);
	
// divido a string $path em partes delimitado pelo (-) hífen
$pieces = explode("-", $path);

// pego as duas últimas posições do array com o nome e sobrenome
$name = $pieces[2];
$lastname = $pieces[3];

// exibo o resultado
echo $code."-".$name."-".$lastname;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Essa é uma boa oportunidade para se aprofundar no assunto :seta: Expressões Regulares - Guia de Consulta Rápida

 

Poste suas tentativas e tentamos lhe auxiliar a partir daí, desta forma não dá a impressão de quê você quer que alguém faça o seu trabalho.

 

To ligado cara, eu ja esperava alguem falar isso pois eu mesmo nao gosto de ajudar gente que chega aqui achando que os outros tem q programas pra eles! Eu sei programar, trabalho a alguns anos com isso, porem, expressao regular e algo que nunca usei, sempre resolvo o problema de outra forma, porem, por solicitação do cliente, preciso fazer com expressão regular e por causa da falta de tempo, precisei da ajuda de vcs! E value pelo link!

 

 

 

Boa noite,

 

Desculpa o "desistímulo" ai pessoal que postou acima, é que estava de bobeira e resolvi ajudar o nosso amigo.

 

Mas o correto é você seguir o que nossos amigos acima orientaram, para você aprender de verdade, ok?

 

Segue minha solução:

<?php

// url exemplo
$url = 'http://dominio.com.algumacoisa/dados171-dados-andre-krebs';
	
// pegando somente o path (dados171-dados-andre-krebs) na url
$path = parse_url($url, PHP_URL_PATH);
	
// expressão regular para pegar somente o código(171) na string $path
$er_code = '/[0-9]/';
preg_match_all($er_code, $path, $matches);

// código encontrado
$code = implode($matches[0]);
	
// divido a string $path em partes delimitado pelo (-) hífen
$pieces = explode("-", $path);

// pego as duas últimas posições do array com o nome e sobrenome
$name = $pieces[2];
$lastname = $pieces[3];

// exibo o resultado
echo $code."-".$name."-".$lastname;

 

Valeu pela ajuda cara! Vou rodar o código aqui!

 

Abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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