C# Language
Analiza wyrażeń regularnych
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