Szukaj…


Składnia

  • new Regex(pattern); // Tworzy nową instancję ze zdefiniowanym wzorcem.
  • Regex.Match(input); // Rozpoczyna wyszukiwanie i zwraca dopasowanie.
  • Regex.Matches(input); // Rozpoczyna wyszukiwanie i zwraca MatchCollection

Parametry

Nazwa Detale
Wzór Wzorzec string , który należy zastosować do wyszukiwania. Aby uzyskać więcej informacji: msdn
RegexOptions [Opcjonalnie] Typowe opcje tutaj to Singleline i Multiline . Zmieniają zachowanie elementów wzorców, takich jak kropka (.), Które nie pokrywają NewLine (\ n) w Multiline-Mode ale w SingleLine-Mode . Domyślne zachowanie: msdn
Limit czasu [Opcjonalnie] Tam, gdzie wzorce stają się bardziej złożone, wyszukiwanie może zająć więcej czasu. Jest to limit czasu minionego wyszukiwania, znany z programowania sieciowego.

Uwagi

Potrzebne do użycia

using System.Text.RegularExpressions;

Miło jest mieć

  • Możesz przetestować swoje wzory online bez potrzeby kompilowania rozwiązania, aby uzyskać wyniki tutaj: Kliknij mnie
  • Regex101 Przykład: Kliknij mnie

Zwłaszcza początkujący mają tendencję do przesadnego wykonywania swoich zadań za pomocą wyrażenia regularnego, ponieważ wydaje się on skuteczny i znajduje się we właściwym miejscu w przypadku bardziej złożonych wyszukiwań tekstowych. Jest to punkt, w którym ludzie próbują parsować dokumenty xml za pomocą wyrażenia regularnego, nie pytając nawet siebie, czy może istnieć już ukończona klasa dla tego zadania, takiego jak XmlDocument .

Regex powinien być ostatnią bronią, która wybrałaby złożoność. Przynajmniej nie zapomnij podjąć wysiłku, aby znaleźć right way przed zapisaniem 20 linii wzorów.

Pojedynczy mecz

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;

Wynik:

found = "text in here"

Wiele dopasowań

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);
}

Wynik:

found = new List<string>() { "text in here", "another one", "third one", "fourth" }


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow