正則表達(dá)式是一種可以和輸入文本相匹配的表達(dá)式。.Net framework 提供了一個(gè)正則表達(dá)式引擎讓這種匹配成為可能。一個(gè)表達(dá)式可以由一個(gè)或多個(gè)字符,運(yùn)算符,或結(jié)構(gòu)體組成。
有很多種類的字符,運(yùn)算符,結(jié)構(gòu)體可以定義正則表達(dá)式。
Regex 類用于表示一個(gè)正則表達(dá)式。它有下列常用的方法:
Sr.No | 方法 |
---|---|
1 | public bool IsMatch(string input) 指出輸入的字符串中是否含有特定的正則表達(dá)式。 |
2 | public bool IsMatch(string input, int startat) 指出輸入的字符串中是否含有特定的正則表達(dá)式,該函數(shù)的 startat 變量指出了字符串開始查找的位置。 |
3 | public static bool IsMatch(string input, string pattern) 指出特定的表達(dá)式是否和輸入的字符串匹配。 |
4 | public MatchCollection Matches(string input) 在所有出現(xiàn)的正則表達(dá)式中搜索特定的輸入字符 |
5 | public string Replace(string input, string replacement) 在一個(gè)特定的輸入字符中,用特定的字符串替換所有滿足某個(gè)表達(dá)式的字符串。 |
6 | public string[] Split(string input) 將一個(gè)輸入字符拆分成一組子字符串,從一個(gè)由正則表達(dá)式指出的位置上開始。 |
有關(guān)屬性和方法的完成列表,請(qǐng)參見微軟的 C# 文檔。
下列的例子中找出了以 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();
}
}
}
編譯執(zhí)行上述代碼,得到如下結(jié)果:
Matching words that start with 'S':
The Expression: \bS\S*
Splendid
Suns
下面的例子中找出了以 m 開頭以 e 結(jié)尾的單詞
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();
}
}
}
編譯執(zhí)行上述代碼,得到如下結(jié)果:
Matching words start with 'm' and ends with 'e':
The Expression: \bm\S*e\b
make
maze
manage
measure
這個(gè)例子替換了額外的空白符:
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();
}
}
}
編譯執(zhí)行上述代碼,得到如下結(jié)果:
Original String: Hello World
Replacement String: Hello World
更多建議: