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


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