2012-04-05 1 views
0

was mit Klassennamen tn_result der reguläre Ausdruck für eine Tabelle sein?Regulärer Ausdruck für eine Tabelle mit Klassennamen tn_result

Ich habe zwei Ausdrücke versucht, unten aber weder funktioniert. Was ist los mit ihnen? Wie kann ich das schaffen?

string TableExpression = "<TTable class=\"tn_results\">(.*?)</table>"; 
+1

Ein glücklicher Tag, wird niemand mehr Fragen stellen, wie HTML mit regulären Ausdrücken zu analysieren ... –

+0

Stackoverflow sollte Benutzer wirklich umleiten Fragen mit "regulären Ausdruck", "HTML", "Tabelle", "Klasse "... direkt zu http://htmlagilypack.codeplex.com/ – Goran

Antwort

1

Siehe this answer auf, warum dies eine schlechte Idee ist.

Die Antwort hängt davon ab, ob Sie brauchen diese Tabelle vom Server oder Client-Seite zu bekommen.

auf dem Client verwenden jQuery:

var table = $('table.tn_result'); 

auf dem Client, wenn Sie ASP.Net WebForms verwenden, wird es wahrscheinlich runat="server" und id Attribute auf den Tisch (e) Sie am einfachsten hinzufügen möchte bekommen. Dann können Sie sie einfach in den Code-behind erhalten wie jedes andere Steuerelement:

var table = this.TableId; //not really required, but hopefully makes things clear 
if(table.Attributes["class"].Contains("tn_result")) 
{ 
    // do something with the table 
} 
+0

das ist nicht, was ich suche. Ich brauche Regexpression, weil ich eine Anwendung für das Verschrotten von Daten schreibe. – user1282751

+0

Reguläre Ausdrücke funktionieren nicht mit HTML. Sie brauchen keinen regulären Ausdruck, Sie benötigen einen HTML-Parser. –

1

zum Abschaben HTML die Html Agility Pack verwenden. Es ist sehr flexibel und lässt Sie schlecht formatiertes HTML so manipulieren, als wäre es wohlgeformtes XML, so dass Sie XPATH verwenden oder einfach über Knoten iterieren können.