sexta-feira, 18 de setembro de 2009

TPerlRegEx - Primeiros passos

Enfim, minha primeira aplicação usando RegEx.

Antes, olha que interessante a estória do Pedro Paulo Pereira Pinto.

Bom, vou usar esta estória como modelo.

Para tanto construi o seguinte aplicativo, usando o TPerlRegEx:



O código mais importante é do botão "Analisar", veja que simples:

procedure TForm1.Analisar;
const
FORMATO = 'Tamanho: [%5d] Posição: [%5d] Casamento: [%s]';
var
iQuant : Integer;
begin
iQuant := 0;

//Limpando a tela de resultados
Memo1.Clear;

//Alimentando o RegEx
Self.PerlRegEx1.RegEx   := Edit1.Text;  //Expressão
Self.PerlRegEx1.Subject := Memo2.Text;  //Texto

//Primeira busca
if (Self.PerlRegEx1.Match) then
begin
Memo1.Lines.Add(Format(FORMATO,[PerlRegEx1.MatchedExpressionLength,PerlRegEx1.MatchedExpressionOffset,PerlRegEx1.MatchedExpression]));
Inc(iQuant);
//Demais buscas
while (Self.PerlRegEx1.MatchAgain) do
begin
Memo1.Lines.Add(Format(FORMATO,[PerlRegEx1.MatchedExpressionLength,PerlRegEx1.MatchedExpressionOffset,PerlRegEx1.MatchedExpression]));
Inc(iQuant);
end;
end;

//Fim
Label1.Caption := Format('%d ocorrências',[iQuant]);
Application.ProcessMessages;

end;


Qual foi o desafio? Destacar todas as palavras presentes no texto.

Veja o resultado final:



Livros que eu li e recomendo: http://goo.gl/NwUsn

Minha lista de blogs