Entwickler-Ecke

Basistechnologien - Regex Werte auf schon eventuelles Vorkommen prüfen?


M-Cha - Fr 30.10.09 12:26
Titel: Regex Werte auf schon eventuelles Vorkommen prüfen?
Ich habe einen Regex erstellt der durscht eine Datei nach einem String. Dann nimmt er diesen String und gibt das Wort aus, das nach VEREIN steht aus.

Manchmal kommt es vor, das das Wort "Verein" mehrmals mit dem selben Wort dahinter kommt. WIe stelle ichd as jetzt an, das er nur jeweils einmal nur das ausgibt, was hinter VErein steht und nicht doppelt das selbe?


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
           Regex verein = new Regex("(?i)(VEREIN\\s).*?\\.\\s", RegexOptions.Singleline);

           MatchCollection vn = verein.Matches(template);

           for (int a = 0; a < vn.Count; a++)
           {
               //string pattern = @"((?i)(VEREIN)|(\s))*(?<Tabelle1>.*?)\(.*";
               string pattern = @"((?i)(VEREIN)|(\s))+(?<5>[^\s\(]+)";

               Match match1 = Regex.Match(vn[a].Value, pattern);

               if (match1.Success)
               {
                   runs.Add(match1.Groups[5].Value);
               }
           }


bakachan - Fr 30.10.09 13:18

Ich würde einfach deine Ergebnisse überprüfen obs schonmal vorkam.
Deine Variable "runs" sieht nach einer List<string> aus und stellt dir somit die dafür benötigte Funktionalität schon zur verfügung.


M-Cha - Fr 30.10.09 14:27

user profile iconbakachan hat folgendes geschrieben Zum zitierten Posting springen:
Ich würde einfach deine Ergebnisse überprüfen obs schonmal vorkam.
Deine Variable "runs" sieht nach einer List<string> aus und stellt dir somit die dafür benötigte Funktionalität schon zur verfügung.


Richtig! ISt oben so definiert!


C#-Quelltext
1:
public Collection<string> runs      = new Collection<string>();                    


Also gibt es dafür eine MEthode? Muss ich mal schauen!


M-Cha - Mi 04.11.09 11:53

Es ist ein Collection<string>!

Leider häng ich etwas!


bakachan - Mi 04.11.09 12:22

user profile iconM-Cha hat folgendes geschrieben Zum zitierten Posting springen:
Leider häng ich etwas!

Meine Kristallkugel bleibt dunkel, woher soll man wissen wo es diesmal hängt?


M-Cha - Mi 04.11.09 15:51

user profile iconbakachan hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconM-Cha hat folgendes geschrieben Zum zitierten Posting springen:
Leider häng ich etwas!

Meine Kristallkugel bleibt dunkel, woher soll man wissen wo es diesmal hängt?


Die Kugel kann weg bleiben.!

Das kann man so lösen:


C#-Quelltext
1:
2:
3:
4:
if ( !runs.Contains ( progs))
                   {
                       tables.Add(progs);
                   }


Der schaut ob ein Wert doppelt ist! Wenn ja, gibt er in nicht aus! Fertig!