[Cascavel-pm] Variaveis em ER

Luis Campos de Carvalho lechamps em terra.com.br
Quinta Agosto 7 07:43:07 CDT 2003


Nelson Ferraz wrote:
>>Eh possivel utilizar-se de variaveis escalares (do tipo $alguma_coisa) em
>>Expressoes Regulares? Como fazer?
> 
> ###
> 
> Você também poderia colocar a variável dentro da expressão regular, como
> por exemplo: 
> 
>   if ($text =~ /^$regexp/) { ...
> 

   Nelson, este não é mais o melhor meio de fazer isso... =-] mas ainda 
é bom.

   Adriano, como quase tudo em perl, expressões regulares nada mais são 
do que strings compostas por caracteres com significados específicos em 
seqüências pré-determinadas. Você pode montar expressões regulares 
contatenando strings como faria para montar qualquer outra coisa em seu 
programa.

   Para ajudar, existe um operador exclusivo para construir expressões 
regulares, chamado 'qr' (veja os detalhes em `perldoc -f qr`).

   Um exemplo:

   my $name   = qr{\w+};
   my $regexp = qr{$name:$name};
   do{ print if /$regexp/ } while( <> );

   Claro, você pode concatenar tantas expressões você quiser, como você 
achar melhor. E pode fazer assim também:

   my $string =  'texto qualquer';
   my $name   = qr{\w+};
   my $regexp = qw,$string $name,;
   foreach $var ( @vars ){ print if $var =~ $regexp }

   Espero que isso ajude.
   []'z!
-- 
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
   Luis Campos de Carvalho is Computer Scientist,
   PerlMonk [SiteDocClan], Cascavel-pm Moderator,
   Unix Sys Admin && Certified Oracle DBA
   http://br.geocities.com/monsieur_champs/
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=




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