Jump to content

Expressões Regulares no Delphi


ndm
 Share

Recommended Posts

Boas.

Não sei se é o sitio certo, mas aqui vai :

Num ficheiro Html gostava de extrair todas as tags <a>, que tenham a classe Linkstyle por exemplo em

<a href="http://www.qualquersite.com" classname=LinkStyle> teste </a>

consigo fazer na boa, com as funções pos e copy, mas quero fazer isso com outra abordagem que me parece que seja mais rápida e mais adequada, que é o uso das expressões regulares.

O delphi 7, ao contrário de outras linguagens não vêm com suporte a expressões regulares, para tal instalei o componente que está em regular-expressions.info/delphi.html

tive a fazer uns testes, mas não consegui  🙂

alguem me quer dar umas luzes para o problema, e se possivel indicar um bom tutorial/manual com explicações acessiveis.

Obrigado

Link to comment
Share on other sites

Desculpem por 'reviver' este tópico, mas como a pergunta não foi totalmente respondida...

Esse componente que você baixou, se chama "TPerlRegEx".

Coloque um componente TPerlRegEx no Form.

No Exemplo ele se chamará PerlRegEx1.

Para adicionar um 'regex' ao componente, basta usar

PerlRegEx1.Regex := 'sua regex aqui';

Para adicionar a string que deseja verificar:

PerlRegEx1.Subject := 'sua string';

Se alguma parte da string corresponde à expressão, setará a propriedade boleana "PerlRegEx1.Match" para true.

Caso mais de uma parte da string corresponda coma  expressão, basta usar um laço de repetição:

var
iQuant : Integer;
begin
PerlRegEx1.Regex := 'sua regex';
PerlRegEx1.Subject := 'sua string';
if (PerlRegEx1.Match) then begin //verifica se foi encontrada alguma ocorrência
  ShowMessage(PerlRegEx1.MatchedExpression); //exibe a expressão encontrada
  Inc(iQuant);
  while (RegEx.MatchAgain) do begin  //MatchAgain é uma propriedade booleana que verifica se mais resultados foram encontrados.
     Inc(iQuant);
     ShowMessage(RegEx.MatchedExpression); // exibe outra expressão encontrada
   end;  
end;
ShowMessage(IntToStr(IQuant)); // exibe a quantidade de ocorrências
end;

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.