Perl/Expressões regulares
A linguagem Perl é reconhecida por ser uma excelente ferramenta para lidar com textos, e as expressões regulares são um dos principais fatores por trás desta qualidade. As expressões regulares de Perl mostram uma eficiência e flexibilidade incomuns, pois estão diretamente integradas à linguagem.
A expressão regular mais simples é uma string:
"Hello World" =~ /World/; # matches
Dentro de um programa, esta expressão regular poderia aparecer assim:
if ($string =~ /World/) { print "It matches\n"; } else { print "It doesn't match\n"; }
Nós podemos usar metacaracteres, como "\d" para designar dígitos:
/\d\d:\d\d:\d\d/; # matches a hh:mm:ss time format
O uso de parênteses permite retornar trechos encontrados na pesquisa:
if ($string =~ /(..):(..):(..)/) { # parse out values $hours = $1; $minutes = $2; $seconds = $3; }
Diversas funções de Perl aceitam expressões regulares como argumentos. O exemplo a seguir mostra como dividir as colunas de uma string separada por tabs:
@columns = split(/\t/, $string);
O asterisco (*) colocado após um valor indica repetição a partir de zero. O símbolo de soma (+) indica repetição a partir de um.
... $string = "aaa"; if (string =~ /a*b*/) { # casa ... } if (string =~ /a+b+/) { # nao casa ... }
Uma expressão é case-sensitive, mas, colocando-se i no final, faz-se a procura igualando maiúsculas e minúsculas. Exemplo:
... $string = "DSC00035.JPG"; # nome tipico de arquivo de camera digital Sony if ($string =~ /dsc[0-9]+[.]jpg/) { # nao casa ... } if ($string =~ /dsc[0-9]+[,]jpg/i) { # casa ... }
Mais informações:
Ver também
editar- Expressões regulares - livro