C#中的正则 Regex类

转义符的总结:

            //string str = @"c:\windows\testb.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();

posted on 2013-09-08 23:31  Creater  阅读(379)  评论(0编辑  收藏  举报

导航