Hallo,
ich probiere etwas mit RegEx auszulesen nur ist es immer so das ich probiere etwas auszulesen was von 2 "tags" umschlossen ist. Nun nimmt mein Regex aber nie das erste Vorkommen sondern immer das letzte...
Source:
<span class="contact">Fax:</span></td><td colspan="2">:::
Regex myRegex = new Regex("(?<=Fax:</span></td><td colspan=\"2\">).*(?=</td>)");
myMatch = myRegex.Match(myString);
string result = myMatch.Value;
mein myMatch.Value geht dann aber bis zum letzten </td> was es finden kann.
was mache ich hier falsch?
mfg Chris
Hallo masterchris_99,
ich würde das nicht über look-arounds machen, sondern die Tags ganz normal in den Pattern aufnehmen, den Teil, der dich interessiert, in Klammern einschließen und zum Schluss die entsprechende Gruppe auslesen.
Dann hast du die look-arounds frei, um das eigentliche Problem zu lösen (mit einem negativen look-ahead). Siehe RegEx kürzester Match [und die Gefahren von .*?].
herbivore
wenn ich jetzt folgendes RegEx nehme
Regex myRegex = new Regex("Fax:</span></td><td colspan=\"2\">[^<]*</td>");
Dann habe ich aber das Problem das ich die Tags die das was ich Suche umschließen im Result mit drin sind. Ich finde jetzt das was ich oben rot & grün markiert habe. Und genau das wollte ich ja mit den Look-Arounds vermeiden.
Ich gehe aber mal aus das mein RegEx noch falsch ist, oder?
Hallo masterchris_99,
Dann habe ich aber das Problem das ich die Tags die das was ich Suche umschließen im Result mit drin sind.
deshalb schrieb ich ja:
den Teil, der dich interessiert, in Klammern einschließen und zum Schluss die entsprechende Gruppe auslesen.
Ich gehe aber mal aus das mein RegEx noch falsch ist, oder?
Zumindest benutzt er keine negativen look-aheads wie vorgeschlagen. Ansonsten liefert er für dein Beispiel schon das richtige Ergebnis (wenn du noch Klammern setzt und die entsprechende Gruppe ausliest).
herbivore
ahhhhh
Ich hatte es vorhin schon mit Klammern eingeschlossen aber der Value hat sich nicht geändert.
myMatch.Groups[1].Value
ist jetzt genau das was ich gesucht habe!
Danke