[SP-pm] Substituicoes balanceadas

Gabriel Vieira gabriel.vieira em gmail.com
Segunda Fevereiro 6 14:36:58 PST 2006


haha

jaja pega o ritmo..

acredito que alguem vai conseguir uma solucao ainda melhor :)

Abraços
----- Original Message ----- 
From: "Roberto Maluhy Junior" <maluhy em gmail.com>
To: <saopaulo-pm em mail.pm.org>
Sent: Monday, February 06, 2006 9:27 PM
Subject: Re: [SP-pm] Substituicoes balanceadas


:)

Ola Gabriel,

Acho que ainda vou precisar programar um bocado para chegar a esta
solucao...apesar de ter entendido o codigo...pelo menos!

Obrigado e Abracos,
Roberto

On 2/6/06, Gabriel Vieira <gabriel.vieira em gmail.com> wrote:
> Aeeeeeeeeee
>
> hahah
>
> quebrei a cabeça e consegui uma 'gambiarra'(será?)
>
> Bom.. devido à procura da melhor solução, fiz com que sua string ficasse
> mais complexa, da seguinte forma:
> ---
> abc abc abc \textit{abc abc} abc \textit{abc abc \textbf{abc \textbf{abc
> abc} abc} abc} abc.
> ---
> * Coloquei um \textbf dentro de um \textbf que por sua vez estava dentro 
> de
> um \textit
>
> O intuito foi dificultar a string já que so com o \textbf dentro do 
> \textit
> foi um pouco fácil resolver, mas havia a falha caso houvesse + de 1 
> '\text*'
> dentro do outro.
> Deu pra entender? hehe..
>
> Seguindo...
>
> Escrevi o código para que fosse usado uma única vez, ou seja invés de um 
> pro
> IT e outro pro BF ficam os 2 em 1 so. Você pode definir quantos quiser, já
> que basta apenas adicionar ao hash.
>
> *No código eu coloquei \\textit com 2 barras pq o interpretador estava 
> lendo
> como um comando tab (\t) ai não dava certo...
>
> <code>
> %inicio = ("it" => "<i>",
>                "bf" => "<b>");
> %fim = ("it" => "</i>",
>              "bf" => "</b>");
> $a = "abc abc abc \\textit{abc abc} abc \\textit{abc abc \\textbf{abc
> \\textbf{abc abc} abc} abc} abc.";
> $a =~ s/\\text(\w{2})\{((\s|\w|<|>|\/)+)\}/$inicio{$1}$2$fim{$1}/g while 
> $a
> =~ /\\text\w{2}\{(\s|\w|<|>|\/)+\}/;
> print "$a";
> </code>
>
> Acho que da para melhorar...
>
> Testa ai ;)
>
> Abraços,
>
> Gabriel Vieira
>
> ----- Original Message -----
> From: "Roberto Maluhy Junior" <maluhy em gmail.com>
> To: <saopaulo-pm em pm.org>
> Sent: Monday, February 06, 2006 7:12 PM
> Subject: [SP-pm] Substituicoes balanceadas
>
>
> Ola mais uma vez,
>
> La vou eu incomoda-los novamente. O Perl possui algum mecanismo ou
> modulo que de conta de buscas balanceadas?
> Vou citar um exemplo de LaTeX:
> ---
> abc abc abc \textit{abc abc} abc \textit{abc abc \textbf{abc abc} abc} 
> abc.
> ---
>
> Se faco s/\\textit\{(.*?)\}/<i>$1</i>/g; fico com
> abc abc abc <i>abc abc</i> abc <i>abc abc \textbf{abc abc</i> abc} abc.
> (ERRADO)
>
> No entanto, gostaria de obter o seguinte resultado
> abc abc abc <i>abc abc</i> abc <i>abc abc \textbf{abc abc} abc</i> abc.
> (CERTO)
>
> Como faco isso? Preciso obrigatoriamente utilizar um contador ou flag
> de "ambientes" abertos e fechados etc...?
>
> Obrigado pela atencao,
> Roberto
> _______________________________________________
> SaoPaulo-pm mailing list
> SaoPaulo-pm em pm.org
> http://mail.pm.org/mailman/listinfo/saopaulo-pm
>
> _______________________________________________
> SaoPaulo-pm mailing list
> SaoPaulo-pm em pm.org
> http://mail.pm.org/mailman/listinfo/saopaulo-pm
>
_______________________________________________
SaoPaulo-pm mailing list
SaoPaulo-pm em pm.org
http://mail.pm.org/mailman/listinfo/saopaulo-pm 



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