[Cascavel-pm] Criar links em um texto

Nélio Nunes nelio.nunes em sapo.pt
Segunda Julho 2 07:55:09 PDT 2007


Fernando,

Pelo que vejo do teu problema, eu aconselhava-te a resolver o teu  
problema utilizando gramáticas. A utlização de regexs só vai trazer  
dores de cabeça.
O Antlr (http://www.antlr.org) tem uma implementação bem simpática   
desse assunto e tem suporte para perl.

Cumps,


Nélio Nunes
nelio.nunes em sapo.pt
PT.COM/SAPO - DTP



On 2007/07/02, at 14:45, <fernandolouis em terra.com.br>  
<fernandolouis em terra.com.br> wrote:

> Fiz um exemplo alternativo ao meu problema real, mas acho que não  
> foi mais
> útil para compreensão de todos
> Deixa eu botar meu problema real para vocês compreenderem:
>
> Recebo do banco de dados um texto (sobre matérias de jornais e  
> revistas),
> que é armazenado na string $texto.
> Esse texto pode vir escrito de várias maneiras diferentes, e antes de
> mostrá-lo na tela, devo botar os respectivos links de cada jornal e  
> revista
> que aparecer.
>
> por exemplo:
> $texto = "O Jornal nº 121/2006 apresenta bla bla bla bla bla,  
> diferente da
> revista nº 54 de maio/2000 que bla bla bla bla".
>
> deve ficar:
> $texto = "O <a href="leitura.pl? 
> tipo=jornal&numero=121&ano=2006">Jornal nº
> 121/2006</a> apresenta bla bla bla bla bla, diferente da <a
> href="leitura.pl?tipo=revista&numero=54&ano=2000">revista nº 54 de
> maio/2000</a> que bla bla bla bla".
>
> O problema é que o "Jornal nº 121/2006" e "revista nº 54 de maio/ 
> 2000" podem
> vir escrito de outras formas como:
>
> "revista 54/2000"
> "revista nº 54/2000"
> "revista n 54 de 2000"
>
> "jornal número 121"
> "jornal nº 121 de 2006"
> "jornal 121/2006"
>
> Sempre vou ter os tipos "revista" e "jornal" com seus respectivos  
> números e
> ano.
>
> O que vocês acham de eu fazer o link mais ou menos assim...
> $texto =~ s/Jornal nº 121/2006/<a
> href="leitura.pl&tipo=jornal&numero=121&ano=2006">$&<\/a>/g;
>
> O primeiro padrão de reconhecimento do "s///" deveria ser, por  
> exemplo,
> $tipo e $numero e $ano que eu peguei do $texto, para então jogar  
> isso na tag
> A ao padrão de substituição de "s///";
>
> Só que não to conseguindo entrar na string $texto e então pegar  
> exatamente
> o: "Jornal nº 121/2006" e "revista nº 54 de maio/2000", primeiro pq  
> eles
> podem vir a ser escrito de várias maneiras, mas até aí beleza, é só  
> prever
> todos os casos no padrão de reconhecimento.
>
> Como entrar no $texto e fazer todas as sbustituições para colocar  
> os links
> nele?
>
> []s,
> Fernando
> -----------------------------
>> Fernando,
>>
>> Para procurar os padrões, eu utilizaria regex, agora, pra armazenar o
>> referido padrão com o link que deve ser inserido, utilizaria um hash,
>> o qual você poderia (se for o caso) guardar em um arquivo  
>> separado, ou
>> ainda algo do tipo YAML ou XML ... se for pouco conteúdo, e não tiver
>> muita pretensão de crescimento, utilizaria um conf padrão mesmo,  
>> tipo:
>> "<variavel>=<valor>" ...
>>
>> um abraço,
>
>
>
>
> _______________________________________________
> Cascavel-pm mailing list
> Cascavel-pm em pm.org
> http://mail.pm.org/mailman/listinfo/cascavel-pm
>

-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://mail.pm.org/pipermail/cascavel-pm/attachments/20070702/81d0199c/attachment-0001.html 


Mais detalhes sobre a lista de discussão Cascavel-pm