none
MAIS DE UMA REGEX RRS feed

  • Pergunta

  • Olá galera, é o seguinte, no meu código, utilizo a Regex para obter o href de uma determinada página em HTML!

    Porém, eu preciso pegar o href e o class da página, sendo que ele estará nesse padrão:

     

    <a class="something" onmouseover="..." href="link"> something </a>

     

    A regex pra pegar o href está assim: href\\s*=\\s*(?:\"(?<1>[^\"]*)\"|(?<1>\\S+))

    E estou pegando o value do href assim: m.Groups[1].ToString()

    Como que eu faço para implementar a REGEX pra pegar o class também?

    quinta-feira, 23 de dezembro de 2010 18:21

Todas as Respostas

  • De mesmo modo que esta ai funciona se voce troca o href por class, assim:

    class\\s*=\\s*(?:\"(?<1>[^\"]*)\"|(?<1>\\S+))


    Contato:albertim_brasil@hotmail.com - Se ajudei, marca como útil.
    Twitter: Me siga!!
    Blog:http://dotnettime.wordpress.com/

    quinta-feira, 23 de dezembro de 2010 20:24
  • Mais eu quero em 1 regex só!! Pra pegar o class no m.Groups[1] e o href no m.Groups[2]! Entendeu?

     

     

    quinta-feira, 23 de dezembro de 2010 23:31
  • Então é desse modo: 

    <a.+?class\\=\"(?<class>.+?)\"(?=[>\\s]).*href\\=\"(?<link>.+?)\"(?=[>\\s]).*?>

    Vale lembra que essa regex ai so está capturando a class e o href se na estrutura da anconra o href estiver depois do atributo class.

    Segue demonstração:

    string entrada = "<a onmouseover=\"...\" class=\"classe\" onmouseover=\"...\" href=\"link\">something</a>";
    Match match = Regex.Match(entrada, "<a.+?class\\=\"(?<1>.+?)\"(?=[>\\s]).*href\\=\"(?<2>.+?)\"(?=[>\\s]).*?>");
    Console.WriteLine("Grupo 1:{0}", match.Groups[1].Value);
    Console.WriteLine("Grupo 2:{0}", match.Groups[2].Value);
    Console.Read();
    
    

    Saida:


    Contato:albertim_brasil@hotmail.com - Se ajudei, marca como útil.
    Twitter: Me siga!!
    Blog:http://dotnettime.wordpress.com/

    sexta-feira, 24 de dezembro de 2010 01:37