C#正则表达式之Regex类用法详解
正则表达式是一种强大的文本处理工具,常用于文本匹配、替换、过滤等操作。在C#中,我们可以使用Regex类来操作正则表达式。
Regex类的基本用法
Regex类提供了多个静态方法和实例方法,用于操作正则表达式。其中最常用的是Match和MatchCollection方法。
Match方法
Match方法用于查找第一个匹配的内容,并返回匹配结果。该方法有多个重载,详细参数和返回值可以查看 MSDN文档。
以下是一个简单的示例,用于匹配字符串中的数字:
string input = "abc123def456";
Match match = Regex.Match(input, @"\d+");
if (match.Success)
{
Console.WriteLine("Matched: " + match.Value);
}
else
{
Console.WriteLine("Not matched");
}
输出结果为:
Matched: 123
MatchCollection方法
MatchCollection方法用于查找所有匹配的内容,并返回匹配结果集合。该方法也有多个重载,详细参数和返回值可以查看 MSDN文档。
以下是一个简单的示例,用于匹配字符串中的所有单词:
string input = "hello world, my name is John";
MatchCollection matches = Regex.Matches(input, @"\b\w+\b");
foreach (Match match in matches)
{
Console.WriteLine("Matched: " + match.Value);
}
输出结果为:
Matched: hello
Matched: world
Matched: my
Matched: name
Matched: is
Matched: John
实战案例:验证手机号码格式
以下是一个包含两个示例的完整案例,用于验证手机号码格式是否正确。
using System;
using System.Text.RegularExpressions;
class Program
{
static bool IsMobileNumber(string input)
{
// 示例一:使用Regex.IsMatch方法判断手机号码格式是否正确
return Regex.IsMatch(input, @"^1[3-9]\d{9}$");
}
static bool IsMobileNumber2(string input)
{
// 示例二:使用Regex.Match方法获取手机号码,并判断是否与原字符串相同
Match match = Regex.Match(input, @"1[3-9]\d{9}");
return match.Success && match.Value == input;
}
static void Main()
{
string[] inputs = {"13512345678", "189abc12345", "1351234", "135123456789"};
foreach (string input in inputs)
{
Console.WriteLine("{0}: Is mobile number? {1} (method 1), {2} (method 2)", input, IsMobileNumber(input), IsMobileNumber2(input));
}
}
}
运行结果为:
13512345678: Is mobile number? True (method 1), True (method 2)
189abc12345: Is mobile number? False (method 1), False (method 2)
1351234: Is mobile number? False (method 1), False (method 2)
135123456789: Is mobile number? False (method 1), False (method 2)
在该案例中,我们使用了两种不同的方法来验证手机号码格式。第一种方法使用了Regex.IsMatch方法,直接判断字符串是否符合正则表达式。第二种方法使用了Regex.Match方法,获取到了手机号码后再和原字符串进行比较。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#正则表达式之Regex类用法详解 - Python技术站