[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