a、定义
它使用一种数学算法来解决计算机程序中的文本检索、匹配等问题。
b、应用
判断用户输入的密码是否合法,判断用户输入的邮箱格式是否合法......
c、元字符
string str = "miss_(suifeng)/5856";
print(str);
//匹配条件为0-9数字或a-z字母
string pat = @"\d|[a-z]";
Regex reg = new Regex(pat);
//输出匹配字符
MatchCollection matcol = reg.Matches(str);
foreach(Match match in matcol)
{
print(match.ToString());
}
//人名分割
string name = "zhang.liming;zhao、wang.liu";
print(name);
string pattern = @"[.;、.]";
string[] array = Regex.Split(name, pattern);
foreach (string item in array)
{
print(item);
}
d、脚本示例
using System;
using System.Text.RegularExpressions;
/*
* c#编程高级学习
* 正则表达式
* 静态方法
* IsMatch 判断字符串与正则表达式字符串是否匹配
* Match Matchs
* Replace 替换功能
* Split 将文本拆分为一个字符串数组
* 2020/4/7
*/
namespace 正则表达式
{
class Program
{
static void Main(string[] args)
{
string s = "I am hero";
//定位元字符
//在开头添加一个字符串
string res0 = Regex.Replace(s, "^", "开始:"); //匹配字符串开始位置
//在结尾添加一个字符串
string res1 = Regex.Replace(s, "$", "结束"); //匹配字符串结束位置
//Console.WriteLine(res1);
//示例:判断用户输入的是否合法(全部为数字)
string input = Console.ReadLine();
//方法1
//bool isMatch = true; //默认input为一个合法密码
//for(int i = 0; i< input.Length; i++)
//{
// if (input[i] < '0' || input[i] > '9')
// {
// isMatch = false;
// break;
// }
//}
//if (isMatch == true)
//{
// Console.WriteLine("输入密码合法");
//}
//else
//{
// Console.WriteLine("输入密码不合法");
//}
//方法2
//* 此处表示开头和结尾之间有0个或多个\d类型的字符
string pattern = @"^\d*$";
bool isMatch = Regex.IsMatch(input, pattern);
Console.WriteLine(isMatch);
//分组()
//匹配以ab开头的字母、数字、下划线、汉字2次的基础上,再匹配2次
string strGroup = @"(ab\w{2}){2}"; //相当于 @"ab\w{2}ab\w{2}"
Console.ReadKey();
}
}
}