多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# 如何:使用正则表达式搜索字符串(C# 编程指南) 可以使用 [System.Text.RegularExpressions.Regex](https://msdn.microsoft.com/zh-CN/library/system.text.regularexpressions.regex.aspx) 类搜索字符串。这些搜索有的非常简单,有的复杂到需要完全使用正则表达式。以下是使用 [Regex](https://msdn.microsoft.com/zh-CN/library/system.text.regularexpressions.regex.aspx) 类搜索字符串的两个示例。有关更多信息,请参见[.NET Framework 正则表达式](https://msdn.microsoft.com/zh-CN/library/hs600312.aspx)。 以下代码是一个控制台应用程序,用于对数组中的字符串执行简单的不区分大小写的搜索。给定要搜索的字符串和包含搜索模式的字符串后,静态方法 [Regex.IsMatch](https://msdn.microsoft.com/zh-CN/library/ktzf2d23.aspx) 将执行搜索。在本例中,使用第三个参数指示忽略大小写。有关更多信息,请参见[System.Text.RegularExpressions.RegexOptions](https://msdn.microsoft.com/zh-CN/library/system.text.regularexpressions.regexoptions.aspx)。 ``` class TestRegularExpressions { static void Main() { string[] sentences = { "C# code", "Chapter 2: Writing Code", "Unicode", "no match here" }; string sPattern = "code"; foreach (string s in sentences) { System.Console.Write("{0,24}", s); if (System.Text.RegularExpressions.Regex.IsMatch(s, sPattern, System.Text.RegularExpressions.RegexOptions.IgnoreCase)) { System.Console.WriteLine(" (match for '{0}' found)", sPattern); } else { System.Console.WriteLine(); } } // Keep the console window open in debug mode. System.Console.WriteLine("Press any key to exit."); System.Console.ReadKey(); } } /* Output: C# code (match for 'code' found) Chapter 2: Writing Code (match for 'code' found) Unicode (match for 'code' found) no match here */ ``` 以下代码是一个控制台应用程序,此程序使用正则表达式验证数组中每个字符串的格式。验证要求每个字符串具有电话号码的形式,即用短划线将数字分成三组,前两组各包含三个数字,第三组包含四个数字。这是使用正则表达式 ^\\d{3}-\\d{3}-\\d{4}$ 完成的。有关更多信息,请参见[正则表达式语言 - 快速参考](https://msdn.microsoft.com/zh-CN/library/az24scfc.aspx)。 ``` class TestRegularExpressionValidation { static void Main() { string[] numbers = { "123-555-0190", "444-234-22450", "690-555-0178", "146-893-232", "146-555-0122", "4007-555-0111", "407-555-0111", "407-2-5555", }; string sPattern = "^\\d{3}-\\d{3}-\\d{4}$"; foreach (string s in numbers) { System.Console.Write("{0,14}", s); if (System.Text.RegularExpressions.Regex.IsMatch(s, sPattern)) { System.Console.WriteLine(" - valid"); } else { System.Console.WriteLine(" - invalid"); } } // Keep the console window open in debug mode. System.Console.WriteLine("Press any key to exit."); System.Console.ReadKey(); } } /* Output: 123-555-0190 - valid 444-234-22450 - invalid 690-555-0178 - valid 146-893-232 - invalid 146-555-0122 - valid 4007-555-0111 - invalid 407-555-0111 - valid 407-2-5555 - invalid */ ``` ## 请参阅 [System.Text.RegularExpressions.Regex](https://msdn.microsoft.com/zh-CN/library/system.text.regularexpressions.regex.aspx) [C# 编程指南](https://msdn.microsoft.com/zh-CN/library/67ef8sbd.aspx) [字符串(C# 编程指南)](https://msdn.microsoft.com/zh-CN/library/ms228362.aspx) [.NET Framework 正则表达式](https://msdn.microsoft.com/zh-CN/library/hs600312.aspx) [正则表达式语言 - 快速参考](https://msdn.microsoft.com/zh-CN/library/az24scfc.aspx)