C # - wyrażenia regularne
ZA regular expressionto wzorzec, który można dopasować do tekstu wejściowego. Platforma .Net udostępnia mechanizm wyrażeń regularnych, który umożliwia takie dopasowywanie. Wzorzec składa się z co najmniej jednego literału znakowego, operatora lub konstrukcji.
Konstrukcje do definiowania wyrażeń regularnych
Istnieją różne kategorie znaków, operatorów i konstrukcji, które umożliwiają definiowanie wyrażeń regularnych. Kliknij poniższe łącza, aby znaleźć te konstrukcje.
Postać ucieka
Klasy postaci
Anchors
Konstrukcje grupujące
Quantifiers
Konstrukcje odwołań wstecznych
Konstrukcje naprzemienne
Substitutions
Różne konstrukcje
Klasa Regex
Klasa Regex służy do reprezentowania wyrażenia regularnego. Posiada następujące powszechnie używane metody -
Sr.No. | Metody i opis |
---|---|
1 | public bool IsMatch(string input) Wskazuje, czy wyrażenie regularne określone w konstruktorze Regex znajduje dopasowanie w określonym ciągu wejściowym. |
2 | public bool IsMatch(string input, int startat) Wskazuje, czy wyrażenie regularne określone w konstruktorze Regex znajduje dopasowanie w określonym ciągu wejściowym, zaczynając od określonej pozycji początkowej w ciągu. |
3 | public static bool IsMatch(string input, string pattern) Wskazuje, czy określone wyrażenie regularne znajduje dopasowanie w określonym ciągu wejściowym. |
4 | public MatchCollection Matches(string input) Przeszukuje określony ciąg wejściowy dla wszystkich wystąpień wyrażenia regularnego. |
5 | public string Replace(string input, string replacement) W określonym ciągu wejściowym zastępuje wszystkie ciągi, które pasują do wzorca wyrażenia regularnego, określonym ciągiem zastępczym. |
6 | public string[] Split(string input) Dzieli ciąg wejściowy na tablicę podciągów w pozycjach zdefiniowanych przez wzorzec wyrażenia regularnego określony w konstruktorze Regex. |
Aby uzyskać pełną listę metod i właściwości, przeczytaj dokumentację firmy Microsoft dotyczącą języka C #.
Przykład 1
Poniższy przykład wyszukuje słowa zaczynające się na literę „S” -
using System;
using System.Text.RegularExpressions;
namespace RegExApplication {
class Program {
private static void showMatch(string text, string expr) {
Console.WriteLine("The Expression: " + expr);
MatchCollection mc = Regex.Matches(text, expr);
foreach (Match m in mc) {
Console.WriteLine(m);
}
}
static void Main(string[] args) {
string str = "A Thousand Splendid Suns";
Console.WriteLine("Matching words that start with 'S': ");
showMatch(str, @"\bS\S*");
Console.ReadKey();
}
}
}
Kiedy powyższy kod jest kompilowany i wykonywany, daje następujący wynik -
Matching words that start with 'S':
The Expression: \bS\S*
Splendid
Suns
Przykład 2
Poniższy przykład dopasowuje słowa, które zaczynają się od „m” i kończą na „e” -
using System;
using System.Text.RegularExpressions;
namespace RegExApplication {
class Program {
private static void showMatch(string text, string expr) {
Console.WriteLine("The Expression: " + expr);
MatchCollection mc = Regex.Matches(text, expr);
foreach (Match m in mc) {
Console.WriteLine(m);
}
}
static void Main(string[] args) {
string str = "make maze and manage to measure it";
Console.WriteLine("Matching words start with 'm' and ends with 'e':");
showMatch(str, @"\bm\S*e\b");
Console.ReadKey();
}
}
}
Kiedy powyższy kod jest kompilowany i wykonywany, daje następujący wynik -
Matching words start with 'm' and ends with 'e':
The Expression: \bm\S*e\b
make
maze
manage
measure
Przykład 3
Ten przykład zastępuje dodatkowe białe znaki -
using System;
using System.Text.RegularExpressions;
namespace RegExApplication {
class Program {
static void Main(string[] args) {
string input = "Hello World ";
string pattern = "\\s+";
string replacement = " ";
Regex rgx = new Regex(pattern);
string result = rgx.Replace(input, replacement);
Console.WriteLine("Original String: {0}", input);
Console.WriteLine("Replacement String: {0}", result);
Console.ReadKey();
}
}
}
Kiedy powyższy kod jest kompilowany i wykonywany, daje następujący wynik -
Original String: Hello World
Replacement String: Hello World