Entwickler-Ecke
Basistechnologien - Regex! Was bewirken diese Patter?
M-Cha - Mi 28.10.09 13:49
Titel: Regex! Was bewirken diese Patter?
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
C#-Quelltext
1:
| Regex test = new Regex(@"LINK_TO_([a-zA-Z0-9])*", RegexOptions.IgnoreCase); |
2.Patter
C#-Quelltext
1:
| Regex test = new Regex(@"define ([^\.]+) buffer ([^\.]+) for ([^\.]+).([^\.]+)", RegexOptions.IgnoreCase); |
3.Patter
C#-Quelltext
1:
| Regex test = new Regex(@"&global-define ([^\s]+) ([^\n]+)",RegexOptions.IgnoreCase); |
Moderiert von Christian S.: Titel geändert, Regex wird mit "g" und nicht mit "d" geschrieben
bakachan - Mi 28.10.09 14:11
das @ vor den Strings bedeutet das das \ nicht als Escape-Zeichen gewertet wird sondern als echtes \
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
C#-Quelltext
1:
| Regex test = new Regex(@"define ([^\.]+) buffer ([^\.]+) for ([^\.]+).([^\.]+)", RegexOptions.IgnoreCase); |
[^\.]+ -> 1 oder mehrere Zeichen die kein Punkt sind
. -> beliebiges Zeichen
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 [
http://www.mycsharp.de/wbb2/thread.php?threadid=41009]
M-Cha - Mi 28.10.09 16:36
Zum ersten Regex versteh ich in dieser Anweisung nicht ganz den Sinn. (Ist eine Anwendung eines Vereins)
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 - Mi 28.10.09 16:49
M-Cha hat folgendes geschrieben : |
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
C#-Quelltext
1:
| dialogs.Add(mt.Groups[1].Value); |
dafür benutzen
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!