Regex

17/10/2007 - 15:31 von Merwed | Report spam
Ein Text enthàlt folgenden Abschnitt:

<tr>

<td>
Leben
</td>

<td align="right">
(EUR)
</td>

<td align="right">
46,35
</td>

<td align="right">
115,88
</td>
</tr>

Diesen Abschnitt möchte ich mit diesem Regulàren Ausdruck extrahieren:

@"\<tr\>.*?Leben.*?\<\/tr\>"

Durch das angehàngte ? werden die .* nongreedy, sollen also den
kürzestmöglichen Abschnitt matchen. Leider funktioniert das nicht und es
wird immer ein viel größerer Textabschnitt gematcht vom ersten <tr> bis zum
letzten </tr>.

Wie kommt denn das? Und kann ich da was machen?
 

Lesen sie die antworten

#1 Christoph Schneegans
17/10/2007 - 17:35 | Warnen spam
"Merwed" schrieb:

Diesen Abschnitt möchte ich mit diesem Regulàren Ausdruck extrahieren:

@"\<tr\>.*?Leben.*?\<\/tr\>"



Es ist nicht weise, XML oder HTML mit regulàren Ausdrücken zu bearbeiten.
Falls es sich bei deinem Dokument um XHTML handelt, kannst du die Klassen
aus System.Xml verwenden; für das Parsen von HTML ist
<http://www.codeplex.com/Wiki/View.a...typack> sehr
beliebt.

<http://schneegans.de/web/xhtml/> · Klare Antworten zu XHTML

Ähnliche fragen