C#中的正则 Regex类

转义符的总结:

            //string str = @"c:windows estb.txt";

            //string regstr = ".+\\(.+)";

 

            //string str1 = "<img src="key.txt"/>";

            //string regstr = "<img src="(.+)"/>";

 

            //string str = "我的生日是05/21/2010";

            //string regstr = "\d+/\d+\d+";

 

第一组里面的路径中的     既是正则的里的转义符,又是C#里面的转义符,所以要转移两次,所以用1*2*2   来表示 一个 

第二组里的双引号只是C#里的正则,所以只用转义一次

第三组里面的 只是是正则里面的转义符,所以要转义一次

………………………………………………………….

.NET 中的正则表达式(Regex类的方法)

1Regex.IsMatch     是否匹配

string str = "1234";

bool result = Regex.IsMatch(str,"[0-9]{4}");

………………………………………………………….

2 Regex.Match 提取单个字符串

string str = "1k2j3h2123jhb23";

string str2 = (Regex.Match(str,"[0-9]+")).ToString();

2.1 单个字符串中的组提取group

string str = "1k2j3h2123jhb23";

Match match = Regex.Match(str, "([0-9]+)(.+)");

string str1=match.Groups[1].Value;

string str2 = match.Groups[2].Value;

数组提取的序号

从左向右只数左括号,从1开始数

………………………………………………………….

3 Regex.matches() 提取所有符合要求的字符串

string str=@"绩大于80,则奖励50.语文成绩等于100并且音乐成绩大于70,则奖励100";

MatchCollection matches = Regex.Matches(str, "[0-9]+"); // MatchCollection 类型的变量存储匹配到的字符

foreach (Match mc in matches) //遍历输出得到的字符串

{

Console.WriteLine(mc.Value);

}

Console.ReadKey();

………………………………………………………….

4Regex.Replace 替换字符串     有两种替换方式

方式1

str = Regex.Replace(str, "aa+", "");

方式2

string bir = "我的生日是05/21/2010";

string result = Regex.Replace(bir,@"(d{2})/(d{2})/(d{4})","$3-$1-$2");

………………………………………………………….

5Regex.Split 分割:

string str1="jfgdjgkhgkeydijf;ldfjgldfkey";

            string[] strArr = Regex.Split(str1, "key.");

            for (int i = 0; i < strArr.Length; i++)

            {

                Console.WriteLine(strArr[i]);

            }

            Console.ReadKey();

原文地址:https://www.cnblogs.com/key1309/p/3309019.html