2017-05-11 9 views
-2

Ich versuche, Zeichenfolgen nach einem Muster in einer langen Zeichenfolge, die im Grunde HTML-Ausgabe einer Seite ist, zu extrahieren.Regex übereinstimmende Zeichen nach Muster

Zum Beispiel; Ich brauche

<h2 class=\ "product-name\"><a href=\"/erkek-ayakkabi-spor-gri-17sfd3007141340-p\" title=\"...">...</a></h2>\r\n 

aus dieser Zeichenfolge Ziel von href-Tag zu extrahieren Was ich brauche aus diesem: erkek-AYAKKABI-spor-gri-17sfd3007141340-p

Aber auch ich brauche, um einen Strings gleichermaßen zu finden über. So muss ich nach href Tags nach class=\ "product-name\" in der HTML-Zeichenfolge suchen.

Wie kann ich das erreichen?

+0

Siehe [Was ist der beste Weg, HTML in C# zu analysieren?] (Http:// Stackoverflow.com/questions/56107). –

+0

Ich arbeite an einem bereits geschriebenen Code, ich muss nur eine minimale Änderung vornehmen. Ich habe keine Zeit, die Art, wie wir HTML jetzt analysieren, grundlegend zu ändern. Vielleicht später. –

Antwort

1

Bitte überprüfen Sie dies.

Regex:

class=\"product-name\"(.*)<a\shref=\"(.*?)\" 

Aktualisiert Regex:

class=\"product-name\".*<a\shref=\"(.*?)\" 

Regex101 Example.

C# Code:

using System; 
using System.Text.RegularExpressions; 

public class Program 
{ 
    public static void Main() 
    { 
     string data = "<h2 class=\"product-name\"><a href=\"erkek-ayakkabi-spor-gri-17sfd3007141340-p\" title=\"...\">...</a></h2>\r\n<h2 class=\"test-name\"><a href=\"erkek-ayakkabi-spor-gri-17sfd3007141340-p\" title=\"...\">...</a></h2>\r\n<h2 class=\"product-name\"><a href=\"erkek-ayakkabi-spor-gri-17sfd3007141340-p\" title=\"...\">...</a></h2>\r\n"; 
     //string regex = "class=\"product-name\"(.*)<a\\shref=\"(.*?)\""; 
     string regex = "class=\"product-name\".*<a\\shref=\"(.*?)\""; 
     var matches = Regex.Matches(data, regex, RegexOptions.Multiline); 
     foreach(Match item in matches) 
     { 
      //Console.WriteLine("Value: " + item.Groups[2]); 
      Console.WriteLine("Value: " + item.Groups[1]); 
     } 
    } 
} 

DotNetFiddle Example.

+0

Verdammt, ich schrieb buchstäblich genau den gleichen Code ... :) – Webbanditten

+0

Das ist gut ..... – csharpbd

+0

Warum brauchen Sie die erste Gruppe? –

Verwandte Themen