Autor Beitrag
M-Cha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 67



BeitragVerfasst: Mi 13.01.10 17:38 
Ich habe mehrere Strings die ich aus einem Dokument lese.

Bekomme auch alle ausgelesen. Ich lese alle String mit dem Wortanfang "CREATE" aus.

Jetzt möchte ich aber, das er mir nur die Strings mit Create ausließt, wo als zweites Wort kein Verein, Club oder Verband hinter steht.

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


Bsp:

Create test blllblbbll

Create Verein vlvllvlv

Create Verband
danielf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1012
Erhaltene Danke: 24

Windows XP
C#, Visual Studio
BeitragVerfasst: Mi 13.01.10 18:08 
Du bist aber sehr hartnäckig ;)

Wie wärs wenn du es in zwei Teilen parst? Mehr Hilfestellungen fallen mir nicht mehr ein... das DU es verstehst.

Gruß Daniel
M-Cha Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 67



BeitragVerfasst: Do 14.01.10 09:02 
Ja Leider will ich immer genauer parsen und weiter :-)

Das wort CREATE ist fest.

Manchmal gibt es CREATE verein oder create verband.

Die soll er nicht nehmen.

Ich dachte an sowas wie [^Verein]
danielf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1012
Erhaltene Danke: 24

Windows XP
C#, Visual Studio
BeitragVerfasst: Do 14.01.10 10:39 
Ich hatte dir ja schon den kompletten Code für dein File gegeben... und auch mehrere Hinweise dass du es locker in zwei Schritten machen kannst. Ich meinen Augen gibt es 0 Probleme mehr. Du hast alles in der Hand um es richtig zu machen.

Viel Erfolg
Daniel
bakachan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 503
Erhaltene Danke: 34

W7 (x64) Ultimate
C# / VB.NET (VS2010 Ultimate)
BeitragVerfasst: Do 14.01.10 10:59 
user profile iconM-Cha hat folgendes geschrieben Zum zitierten Posting springen:
Ich dachte an sowas wie [^Verein]

Ich glaube diese Buchstaben auszuschließen bringt nicht den gewünschten Effekt.
Du könntest an dieser Stelle einen Look-Ahead verwenden.
danielf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1012
Erhaltene Danke: 24

Windows XP
C#, Visual Studio
BeitragVerfasst: Do 14.01.10 11:08 
Ich verstehe nicht, wieso er es nicht einfach in zwei Schritten macht :nixweiss:

Alles andere ist für ihn doch eh zu kompliziert :mahn: Warum also nicht einfach den leicht Weg nehmen, anstatt ein halbes Jahr an dem Problem rum zu machen ?? (Ist schon der 4 Thread mit unzähligen Posts von ihm - in einem steht auch schon bereits die Lösung, die Ihn aber nicht interessiert.)

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
MatchCollection matches = Regex.MatchCollection("Create (?<blub>x)...");

foreach(var match in matches)
{
  if (match.Groups["blub"].Success)
  {
    ....
  }
}


Das konkrete Pattern aus dem entsprechenden (frühren) Thread nehmen - suchen kannst ja selber?!
M-Cha Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 67



BeitragVerfasst: Do 14.01.10 11:33 
Ich gehe mal von aus du meinst das hier mit den zwei schritten!

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
            Regex CREATE = new Regex(@"(?i)(Create\s).*?\.\s", RegexOptions.Singleline);

            MatchCollection cr = CREATE.Matches(inhalt);

            for (int k = 0; k < cr.Count; k++)
            {
                string pattern3 = @"((?i)(Create)|(\s))+(?<1>[^\s\(]*)";

                Match match2 = Regex.Match(cr[k].Value, pattern3);

                Console.WriteLine(match2.Groups[1].Value);
            }


Da hole ich mir ja erst die Create Strings und dann die jeweiligen Wörter die ich brauche nachdem Create.

Manchmal gibt es aber nacdem Create noch ein Wort das den String den ich brauche unbrauchbar macht. Deshalb brauche ich den nicht. Komm einfahc nicht drauf!
M-Cha Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 67



BeitragVerfasst: Mo 18.01.10 01:26 
Also ich kommt echt nicht drauf wie ich das lösen kann. Hab mir das jetzt 2 Tage lang angeschaut und im Internet nach Hilfe gesucht. Leider nichts gefunden wie ich das lösen kann.

Will das umbedingt lernen und erfahren wie es geht. Bitte um weitere Hilfestellung!