Apêndice A. Expressões Regulares

Anders Lund

Tradução: Lisiane Sztoltz
Este Apêndice contém uma breve mas suficiente introdução sobre o 
mundo das expressões regulares. Ele documenta 
expressões regulares na forma disponível dentro do KatePart, que 
não é compatível com as expressões regulares do Perl, ou de 
outros comandos como o grep.

Introdução

As Expressões Regulares nos fornecem uma maneira de descrever alguns possíveis conteúdos de uma string de texto, de modo a ser entendido por um pedaço de software, e assim, ele pode investigar se um texto combina, e também no caso de aplicativos avançados, com o objetivo de salvar pedaços ou o texto que combina com a busca.

Um exemplo. Digamos que você deseja buscar, em um texto, por parágrafos que iniciam com um desses nomes: Henrik ouPernille , seguido por alguma forma do verbo dizer.

Com uma pesquisa normal, você iria começar a procurar pelo primeiro nome, Henrique, sendo talvez seguido de di, como o seguinte: Henrique di e, enquanto procura por ocorrências, iria ignorar os que não se encontram no início de um parágrafo, assim como os que têm uma palavra que começa por di que não é diz, disse ou algo do gênero. Claro, e ainda ter que repetir isto com o próximo nome...

Com as Expressões Regulares, aquela tarefa poderia ser cumprida com uma única busca, e com um grau maior de precisão.

Para obter isto, as Expressões Regulares definem regras para expressar em detalhes uma generalização de uma string que será procurada. Podemos literalmente expressar nosso exemplo assim: Uma linha iniciada com Henrik ou Pernille (possivelmente seguido por 4 caracteres em branco ou tabs) seguido por um espaço em branco, seguido por um di e então, um iz ou sse, que poderia ser colocado na seguinte expressão regular:

^[ \t]{0,4}(Henrik|Pernille) di(sse|z)

O exemplo anterior demonstra todos os quatro conceitos principais das Expressões Regulares modernas, chamados:

  • Padrões

  • Afirmações

  • Quantificadores

  • Referências para trás

O acento circunflexo (^) no início da expressão é uma afirmação, sendo verdade somente se a string relacionada estiver no início de uma linha.

As strings [ \t] e (Henrik|Pernille) di(sse|z) são padrões. A primeira é uma classe de caractere que combina ou com um espaço em branco ou com um caractere de tabulação (horizontal); o outro padrão contém primeiramente um subpadrão que combina ou com Henrik ou com Pernille. Em seguida, vem um pedaço que corresponde exatamente com a string di e, finalmente segue um subpadrão que combina com sse ou com z.

A string {0,4} é um quantificado dizendo qualquer número de 0 até 4 da string anterior.

Por causa do suporte ao conceito de referência para trás das expressões regulares, é economizado uma parte inteira combinada da string, bem como os subpadrões incluídos em parênteses; fornecidos alguns tipos de acesso para aquelas referências, podemos obter nossos meios de encontrar a string inteira (ao se procurar um documento de texto em um editor com uma expressão regular, o que é marcado frequentemente) ou o nome encontrado, ou a última parte do verbo.

Toda junta, a expressão procurará o que você desejar que ela procure, e somente ali.

As seções seguintes descreverão em detalhes como construir e usar padrões, classes de caracteres, afirmações, quantificadores e referências para trás, e a seção final fornecerá alguns exemplos úteis.