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



BeitragVerfasst: Mi 28.10.09 13:49 
Kann mir jemand genau sagen was diese Pattern machen?

Kann sie nicht wirklich entschlüsseln. Bei mir hackt es etwas mit dem pattern.

1.Patter

ausblenden C#-Quelltext
1:
Regex test = new Regex(@"LINK_TO_([a-zA-Z0-9])*", RegexOptions.IgnoreCase);					


2.Patter
ausblenden C#-Quelltext
1:
Regex test = new Regex(@"define ([^\.]+) buffer ([^\.]+) for ([^\.]+).([^\.]+)", RegexOptions.IgnoreCase);					


3.Patter

ausblenden C#-Quelltext
1:
Regex test = new Regex(@"&global-define ([^\s]+) ([^\n]+)",RegexOptions.IgnoreCase);					


Moderiert von user profile iconChristian S.: Titel geändert, Regex wird mit "g" und nicht mit "d" geschrieben
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: Mi 28.10.09 14:11 
das @ vor den Strings bedeutet das das \ nicht als Escape-Zeichen gewertet wird sondern als echtes \
ausblenden C#-Quelltext
1:
Regex test = new Regex(@"LINK_TO_([a-zA-Z0-9])*", RegexOptions.IgnoreCase);					

([a-zA-Z0-9])* -> beliebig viele Zeichen die entweder Kleinbuchstaben (a-z), Großbuchstaben (A-Z) oder Zahlen (0-9) sind in einer Gruppe

ausblenden C#-Quelltext
1:
Regex test = new Regex(@"define ([^\.]+) buffer ([^\.]+) for ([^\.]+).([^\.]+)", RegexOptions.IgnoreCase);					

[^\.]+ -> 1 oder mehrere Zeichen die kein Punkt sind
. -> beliebiges Zeichen

ausblenden C#-Quelltext
1:
Regex test = new Regex(@"&global-define ([^\s]+) ([^\n]+)",RegexOptions.IgnoreCase);					

([^\s]+) -> 1 oder mehrere Zeichen die kein Whitespace sind
([^\n]+) -> 1 oder mehrere Zeichen die kein Newline(Zeilenumbruch) sind

Der Rest ist einfach so wie es da steht.

Meine Empfehlung:
Regex-Tutorial
M-Cha Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 67



BeitragVerfasst: Mi 28.10.09 16:36 
Zum ersten Regex versteh ich in dieser Anweisung nicht ganz den Sinn. (Ist eine Anwendung eines Vereins)

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
              Regex db = new Regex(@"LINK_TO_([a-zA-Z0-9])*", RegexOptions.IgnoreCase);

              MatchCollection MatchList = db.Matches(liste);
        
              foreach( Match mt in MatchList ) 
                {
                dialogs.Add(mt.Groups[0].Value.Substring( 8) );
              }


Was macht der genau?
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: Mi 28.10.09 16:49 
user profile iconM-Cha hat folgendes geschrieben Zum zitierten Posting springen:

ausblenden C#-Quelltext
1:
dialogs.Add(mt.Groups[0].Value.Substring( 8) );					


Was macht der genau?

Group 0 ist der gesammte gematchte Bereich
und es wird nur der Substring ab Index 8 (also nach LINK_TO_) genommen

ist unnötig kompliziert gemacht da ja im Regex schon eine extra Gruppe dafür definiert ist
man könnte also einfach
ausblenden C#-Quelltext
1:
dialogs.Add(mt.Groups[1].Value);					

dafür benutzen