Ich möchte in der Lage sein, eine Sammlung von Knoten zu erstellen, wo der Text mit einem Wort und dann einer Zahl beginnt. Zum Beispiel angesichts der folgenden:
<p>FINDTHIS 1</p>
<p>FINDTHIS SOMETEXT</p>
<p>FINDTHIS 2</p>
Ich möchte in der Lage sein, eine Sammlung zu erstellen, die aus zwei Absatzknoten besteht: FINDTHIS 1 und FINDTHIS 2.
Ein möglicher Ansatz wäre, eine xpath-Abfrage wie //p[starts-with(., 'FINDTHIS ')]
zu erstellen und dann einen regulären Ausdruck zu verwenden, um zu bestimmen, ob das nächste Zeichen eine Zahl ist oder nicht. Wenn ich eine Liste der Übereinstimmungen erhalten möchte, die die obigen Kriterien zurückgegeben haben, könnte ich ein reguläres Ausdrucksobjekt erstellen und den Text für jedes Mitglied in der Sammlung testen.
Gibt es eine Möglichkeit, einen regulären Ausdruck direkt im Selektor mithilfe von HtmlAgilityPack zu verwenden?
Nein, das HTML Agility Pack unterstützt dies derzeit nicht. Es unterstützt XPath-Abfragen der Version 1, die keine regulären Ausdrücke unterstützen .
Sie müssen jedoch wie empfohlen vorgehen und mit dem XPath-Ausdruck bis zu dem Punkt auswählen, an dem Sie einen regulären Ausdruck verwenden möchten. Verwenden Sie dann die Where
Erweiterungsmethode , um die entsprechenden Knoten basierend auf einer RegEx
Instanz herauszufiltern.
Es ist nicht out-of-the-box verfügbar, aber Sie können diese Funktionalität problemlos hinzufügen. Es wird hier beschrieben: HtmlAgilityPack: Xpath und Regex