在C#中制作一个字符串扩展来确定字符串是否与正则表达式匹配
正则表达式可以让你(相对)轻松地确定字符串是否与某种模式匹配。此示例展示了如何在 C# 中创建字符串扩展方法来确定字符串是否与正则表达式匹配
下面的StringExtensions类定义了Matches字符串扩展方法。
public static class StringExtensions
{
// Extension to add a Matches method to the string class.
public static bool Matches(this string the_string,
string pattern)
{
Regex reg_exp = new Regex(pattern);
return reg_exp.IsMatch(the_string);
}
}
该扩展方法创建一个Regex对象并使用其IsMatch方法来确定字符串是否与表达式匹配。
主程序使用扩展方法如下面的代码所示。
// Validate a 7-digit US phone number.
private void txt7Digit_TextChanged(object sender, EventArgs e)
{
if (txt7Digit.Text.Matches("^[2-9]{3}-\\d{4}$"))
{
txt7Digit.BackColor = Color.White;
}
else
{
txt7Digit.BackColor = Color.Yellow;
}
}
当用户更改txt7Digit TextBox 中的文本时,代码使用Matches扩展方法来确定用户是否输入了有效的 7 位美国电话号码。如果文本不匹配,它将TextBox的背景颜色设置为黄色;如果文本匹配,它将背景颜色设置为白色。
该程序使用另外两个TextBox来确定它们是否包含 10 位美国电话号码,以及 7 位或 10 位电话号码。
下载示例进行试验并查看更多详细信息。