[Cascavel-pm] :b ou :basechar no Perl 6 (Was: Reconhecer com e sem acento)

fernandolouis em terra.com.br fernandolouis em terra.com.br
Quinta Julho 19 04:22:13 PDT 2007


perl6++;

Usar na regexp [eê] ou (e|ê) é fácil neh monges...
e usar o "tr//" pra trocar as letras e depois "lc()"... também é fácil neh 
monges...

o que eu queria saber é se existia esse match modifier "b"...

Valeu Daniel!
[]ão,
Fernando


----- Original Message ----- 
From: "Daniel Ruoso" <daniel em ruoso.com>
To: "Cascavel Perl Mongers" <cascavel-pm em pm.org>
Sent: Thursday, July 19, 2007 7:41 AM
Subject: [Cascavel-pm] :b ou :basechar no Perl 6 (Was: Reconhecer com e sem 
acento)


Qua, 2007-07-18 às 17:20 -0300, fernandolouis em terra.com.br escreveu:
> Talvez seja bem simples... antes de me falarem RTFM, digo-lhes que já
> li... e tentei usar /gi, mas não deu
> O que eu quero é reconhecer uma palavra dentro de uma string, com ou
> sem acentuação.
> Por exemplo:
> $palavra = "Manual de referência rápida";
> if ($palavra =~ /referencia/) { # entrar se achar "referencia" dentro
> de $palavra... mesmo sem acento.
> }

É interessante você tocar nesse assunto porque tive uma situação
parecida a um tempo atrás, só que um pouco mais complexa...

O problema era:

Dada a palvavra "referência" ou "referencia" envolver com a tag bold no
texto todas as referências também com ou sem acento. É mais complexo
porque o meu match era variável e porque eu precisava fazer
substituições.

É interessante a sua linha de raciocínio em tentar utilizar
modificadores da regexp para fazer isso, porque na verdade, se a regexp
suporta fazer match "case-insensitive" faz todo sentido que ela pudesse
fazer matches "unicode-properties-insensitive".

Sim "e", "é" e "ê" são a mesma letra em unicode, apenas possuem
propriedades diferentes. A notícia ruim é que as regular expressions do
Perl 5 (ainda?) não implementa isso. A notícia boa é que quando eu tive
esse mesmo problema, fui ao #perl6 trocar uma idéia com o pessoal e
então o Perl 6 vai ter um match modifier para isso, o "b" ou "basechar".
http://dev.perl.org/perl6/doc/design/syn/S05.html#___top

/me loves Perl 6 open development community

Daniel

_______________________________________________
Cascavel-pm mailing list
Cascavel-pm em pm.org
http://mail.pm.org/mailman/listinfo/cascavel-pm



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