C# Language
Regex-Analyse
Suche…
Syntax
-
new Regex(pattern);
// Erzeugt eine neue Instanz mit einem definierten Muster. -
Regex.Match(input);
// Startet die Suche und gibt die Übereinstimmung zurück. -
Regex.Matches(input);
// Startet die Suche und gibt eine MatchCollection zurück
Parameter
Name | Einzelheiten |
---|---|
Muster | Das string , das für die Suche verwendet werden muss. Weitere Informationen: msdn |
RegexOptions [Optional] | Die üblichen Optionen hier sind Singleline und Multiline . Sie ändern das Verhalten von NewLine wie dem Punkt (.), Der eine NewLine (\ n) im Multiline-Mode aber nicht im SingleLine-Mode . Standardverhalten: msdn |
Timeout [optional] | Wo Muster komplexer werden, kann die Suche mehr Zeit in Anspruch nehmen. Dies ist das verstrichene Zeitlimit für die Suche, wie es von der Netzwerkprogrammierung bekannt ist. |
Bemerkungen
Benötigt mit
using System.Text.RegularExpressions;
Schön zu haben
- Sie können Ihre Muster online testen, ohne Ihre Lösung zusammenstellen zu müssen, um Ergebnisse zu erhalten: Klicken Sie auf mich
- Regex101 Beispiel: Klicken Sie auf mich
Besonders Anfänger werden mit regex dazu neigen, ihre Aufgaben zu übertreffen, da sie sich mächtig anfühlen und sich für komplexere textbasierte Suchvorgänge an der richtigen Stelle befinden. Dies ist der Punkt, an dem Leute versuchen, Xml-Dokumente mit Regex zu parsen, ohne sich selbst zu fragen, ob es für diese Aufgabe eine bereits abgeschlossene Klasse wie XmlDocument
.
Regex sollte die letzte Waffe sein, die sich gegen die Komplexität richtet. Vergessen Sie zumindest nicht, etwas zu unternehmen, um nach dem right way
zu suchen right way
bevor Sie 20 Zeilen mit Mustern aufschreiben.
Einziges Paar
using System.Text.RegularExpressions;
string pattern = ":(.*?):";
string lookup = "--:text in here:--";
// Instanciate your regex object and pass a pattern to it
Regex rgxLookup = new Regex(pattern, RegexOptions.Singleline, TimeSpan.FromSeconds(1));
// Get the match from your regex-object
Match mLookup = rgxLookup.Match(lookup);
// The group-index 0 always covers the full pattern.
// Matches inside parentheses will be accessed through the index 1 and above.
string found = mLookup.Groups[1].Value;
Ergebnis:
found = "text in here"
Mehrere Übereinstimmungen
using System.Text.RegularExpressions;
List<string> found = new List<string>();
string pattern = ":(.*?):";
string lookup = "--:text in here:--:another one:-:third one:---!123:fourth:";
// Instanciate your regex object and pass a pattern to it
Regex rgxLookup = new Regex(pattern, RegexOptions.Singleline, TimeSpan.FromSeconds(1));
MatchCollection mLookup = rgxLookup.Matches(lookup);
foreach(Match match in mLookup)
{
found.Add(match.Groups[1].Value);
}
Ergebnis:
found = new List<string>() { "text in here", "another one", "third one", "fourth" }
Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow