Autor Beitrag
Chryzler
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1097
Erhaltene Danke: 2



BeitragVerfasst: Mo 04.06.07 18:37 
Hi C-Sharp'ler,

ich fange jetzt auch .NET, genauergesagt C# an. :) Folgendes Problem:
Hab diesen Code gefunden, um alle Links auf einer Webseite auszulesen. Nur wenn ich das ganze ausprobiere, zeigt er mir folgenden Fehler:
Zitat:
"(?:href\s*=)(?:[\s"']*)(?!#|mailto|location.|javascript|.*css|.*this\.)(?
.*?)(?:[\s>"'])" wird analysiert - Unbekanntes Gruppierungskonstrukt.

Der Fehler tritt an dieser Stelle auf:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
    //regular expression 
    string pattern = @"(?:href\s*=)(?:[\s""']*)(?!#|mailto|location.|javascript|.*css|.*this\.)(?.*?)(?:[\s>""'])";
   
    //Set up regex object 
    Regex RegExpr = new Regex(pattern, RegexOptions.IgnoreCase);   // <- hier der Fehler, dass das Pattern fehlerhaft ist

Bis jetzt hab ich rausgefunden, dass der Fehler am (?.*?) im Pattern liegt. Und das ist genau die Stelle, an der im Original-Code auf der Webseite eine neue Zeile beginnt. Da muss sich irgendein Tippfehler o.ä eingeschlichen haben. Kann irgendjemand von euch den Pattern an der Stelle rekonstruieren, das Fehlende ergänzen, oder mir wenigstens einen Link geben, an dem erklärt wird, wie der Syntax von so einem Pattern aussieht. Hab das gesamte MSDN durchforstet.

Danke im Vorraus!
Chryzler


Moderiert von user profile iconChristian S.: Topic aus C# - Die Sprache verschoben am Mo 04.06.2007 um 19:05
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mo 04.06.07 22:20 
Der Regulator ist da an einigen Stellen nicht ganz glücklich. ;-)

Hab schon länger keine komplizierten Regexen mehr benutzen müssen, aber das hier scheint ganz gut zu gehen:
ausblenden Quelltext
1:
(?:href\s*=)(?:[\s""']*)(?:[^#|mailto|location.|javascript|.*css|.*this\.])(?:.*?)(?:[\s>""'])					

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Chryzler Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1097
Erhaltene Danke: 2



BeitragVerfasst: Di 05.06.07 12:05 
Super, danke! Scheint zu funktionieren.. :)