Informática Numaboa - Tutoriais e Programação
Linguagem Perl - Strings
Sex 21 Nov 2008 18:04 |
- Detalhes
- Categoria: Perl e CGI
- Atualização: Sexta, 21 Novembro 2008 22:21
- Autor: vovó Vicki
- Acessos: 12050
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:
Exemplo 2 - Substituir caracteres especiais por compatíveis com HTML:
Exemplo 3 - Eliminar e bloquear erros:
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.
- << Anterior
- Próximo