Jump to content

Recommended Posts

Posted

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

Posted

ndm,

O Freepascal traz na sua distribuição standard uma unit para expressões regulares... tenta examiná-la, talvez seja compatível com Delphi (e tenha uma interface simples de usar... o freepascal tem um exemplo que recorre a essa unit B))

  • 4 weeks later...
Posted

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;

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
×
×
  • 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.