A Aldeia Numaboa ancestral ainda está disponível para visitação. É a versão mais antiga da Aldeia que eu não quis simplesmente descartar depois de mais de 10 milhões de pageviews. Como diz a Sirley, nossa cozinheira e filósofa de plantão: "Misericórdia, ai que dó!"

Se você tiver curiosidade, o endereço é numaboa.net.br.

Leia mais...

Informática Numaboa - Tutoriais e Programação

Linguagem Perl - Strings

Sex

21

Nov

2008


18:04

(2 votos, média 5.00 de 5) 


Substituindo caracteres ou seqüências de caracteres

A poderosa ferramenta das expressões regulares também é utilizada com frequência para substituir ou eliminar determinados caracteres ou sequências de caracteres. Para isso, existe uma sintaxe especial.

Exemplo 1 - Eliminar letras e espaços:

#!/usr/bin/perl $Texto = "Zé corre risco de vida num táxi todo escangalhado 1234567890"; $Texto =~ s/[a-z]| //gi; print $Texto;

Exemplo 2 - Substituir caracteres especiais por compatíveis com HTML:

#!/usr/bin/perl $Texto = "O coração brasileiro é grande, incômodo para carregar mas próprio para grandes emoções"; $Texto =~ s/ç/\ç\;/g; $Texto =~ s/ã/\ã\;/g; $Texto =~ s/é/\é\;/g; $Texto =~ s/ô/\ô\;/g; $Texto =~ s/ó/\ó\;/g; $Text =~ s/õ/\õ\;/g; print $Texto;

Exemplo 3 - Eliminar e bloquear erros:

#!/usr/bin/perl @NotasEscolares = (1,4,7,2,X,3,0,1,6,3,1,8,R,G,9,2,3,4,1,1,3); $CadeiaDeNotas = join(",",@NotasEscolares); $CadeiaDeNotas =~ s/[7-9]|0|[A-Z]//gi; @NovasNotas = split(/,|,,/,$CadeiaDeNotas); for(@NovasNotas) { unless($_ eq "") { print $_, "\n"; } }

O esquema para todos os procedimentos de busca-substituição em Perl é:

{xtypo_info}String =~ s/PadraoBusca/PadraoSubstituicao/[Opcoes]{xtypo_info}

String é geralmente uma escalar que contém uma cadeia de caracteres, como em $Texto do exemplo 1, seguida da atribuição =~, um espaço e a letra minúscula s. Logo após o s vem uma expressão regular, marcada pelas barras /.../. Para esta expressão de busca valem as mesmas regras das expressões regulares. Após a barra de finalização vem uma segunda expressão contendo um ou mais caracteres que substituirão o resultado da busca. A segunda expressão também recebe uma barra de finalização. Após esta última, podem constar, entre colchetes, opções que definam a execução da busca-substituição. As opções são indicadas por letras minúsculas permitidas, das quais as mais importantes são:

  • g busca/substitui todas as ocorrências encontradas (por padrão, apenas a primeira ocorrência é substituída)
  • i busca/procura letras independente da caixa, tanto as minúsculas quanto as maiúsculas (por padrão uma letra minúscula é considerada diferente da sua versão maiúscula)

No exemplo 1, todas as letras (maiúsculas e minúsculas) e todos os espaços são retirados de $Texto, portanto, só sobram os números.

No exemplo 2, todos os caracteres especiais (ç, ã, õ, é, ó) encontrados em $Texto são substituídos pela forma compatível com HTML.

No exemplo 3 são retirados da lista @NotasEscolares todos os valores que não estejam entre 1 e 6. Para tanto, os valores da lista foram concatenados numa string única, atribuída à escalar $CadeiaDeNotas. Logo após são retirados todos os valores que não estiverem entre 1 e 6, além de todas as letras, utilizando-se um padrão de substituição vazio. A seguir, a cadeia de caracteres tratada é transformada numa lista sem elementos vazios. Os elementos vazios foram tratados pela expressão regular /,|,,/. A nova lista contém apenas as notas que se enquandraram no critério escolhido.

mfx brokerкисти для тенейотзывы полигонлучшие игрыпродвижение сайта недорогоmfx broker отзывы трейдеровлобановский класс

Informações adicionais