在C#中,Regex(正則表達式)是一個用于處理字符串匹配和替換的類。它提供了一種強大和靈活的方式來搜索、匹配和操作文本數據。
以下是使用Regex的一些常用方法和用法:
Regex.IsMatch(string input, string pattern):檢查輸入字符串中是否存在與模式匹配的內容,并返回一個布爾值。
Regex.Match(string input, string pattern):在輸入字符串中搜索與模式匹配的第一個字符串,并返回一個Match對象,它包含了匹配的結果。
Regex.Matches(string input, string pattern):在輸入字符串中搜索與模式匹配的所有字符串,并返回一個MatchCollection對象,它包含了所有匹配的結果。
Regex.Replace(string input, string pattern, string replacement):在輸入字符串中搜索與模式匹配的內容,并將其替換為指定的字符串。
Regex.Split(string input, string pattern):將輸入字符串根據模式匹配進行分割,并返回一個字符串數組。
使用正則表達式的特殊字符和語法,如.(匹配除換行符以外的任意字符)、*(匹配0次或多次)、+(匹配1次或多次)、?(匹配0次或1次)、\d(匹配數字字符)等。
示例:
string input = "Hello, my name is John. I live in New York.";
string pattern = @"\b\w{4}\b"; // 匹配長度為4的單詞
bool isMatch = Regex.IsMatch(input, pattern);
Match match = Regex.Match(input, pattern);
MatchCollection matches = Regex.Matches(input, pattern);
string replaced = Regex.Replace(input, pattern, "****");
string[] splitted = Regex.Split(input, @"\W+"); // 根據非單詞字符進行分割
Console.WriteLine(isMatch); // 輸出:True
Console.WriteLine(match.Value); // 輸出:name
foreach (Match m in matches)
{
Console.WriteLine(m.Value); // 輸出:name, John, live
}
Console.WriteLine(replaced); // 輸出:Hello, my **** is ****. I **** in **** ****.
foreach (string s in splitted)
{
Console.WriteLine(s); // 輸出:Hello, my, name, is, John, I, live, in, New, York
}
這只是Regex類的一部分用法,還有許多其他功能和選項可以使用。使用正則表達式可以進行更高級和復雜的字符串匹配和處理。