Entwickler-Ecke

Basistechnologien - Regex funktioniert nicht richtig!


M-Cha - Mi 21.10.09 11:28
Titel: Regex funktioniert nicht richtig!
Hallo ich habe folgenden String:

bllaflsldfds

Haus blalflsdldflfllsdlf l (0, strasse
hausnr. - kann nicht 0 sein blallalblala
wohnort).
/* feld */

blalblala

Und dazu den folgeden Patter:


C#-Quelltext
1:
Regex HAUS = new Regex("(?i)(HAUS).*?\\.\s", RegexOptions.Singleline);                    


Das Problem ist er soll den ganzen String lesen von "Haus" bis zum nächsten Punkt + Leerzeichen/oder zeilenumbruch.

Leider bricht er bei "Haus blalflsdldflfllsdlf l (0, strasse
hausnr." ab.

Weil da ja der Punkt + Leerzeichen ist. Welche merkmale kann ich den noch angeben?


LostInSpace - Fr 20.11.09 13:07

ungetestet:

Regex HAUS = new Regex("(Haus.*");

;)


Kha - Fr 20.11.09 21:20

user profile iconM-Cha hat folgendes geschrieben Zum zitierten Posting springen:
Welche merkmale kann ich den noch angeben?
Die, die dein Input zulässt. Und da wir den nicht kennen...


JüTho - Sa 21.11.09 11:30

user profile iconKha hat folgendes geschrieben Zum zitierten Posting springen:
Die, die dein Input zulässt. Und da wir den nicht kennen...

Den hat er versteckt unter Mehrere Strings aus Datei auslesen [http://www.c-sharp-forum.de/viewtopic.php?t=95065] und auch nach vielfacher Nachfrage nur bruchstückhaft angegeben. Jürgen


M-Cha - Do 26.11.09 15:06

OK! Problem gelöst. Ich sollte vielleicht an meiner Problemformulierung arbeiten hehe! Danke trotzdem.

Hab nur noch ein kleines Problem was ich nicht verstehe!

Hier der String:


FOR EACH liga-fussball-table:
DELETE WIDGET liga-fussball-table.liga-fussball-handle.
END.

und hier der Regex:

C#-Quelltext
1:
((?i)(FOR)|(EACH)(\s))* (?<1>.*?) .*                    


Das Problem ist, er gibt mir überall die Tabellennamen aus außer bei diesem String! Da gibt er mir EACH aus. Kann mir jemand sagen wieso?