C#中使用正则表达式-Regex类的使用示例

Regex.Split方法分割字符串,示例如下:

        /// 
        /// 正则表达式分割字符串一
        /// 
        static void RegexSplit()
        {
            string str = "1.Fish 2.Cat 3.Dog 4.tigger 30.lion";
            string pattern = @"\b\d{1,2}\.\b";  //\b单词开头或结整,匹配"1. 2. ..."这样的字符
            
           //分割,与string中的Split方法一等价
            var arr = Regex.Split(str, pattern);
            foreach (var item in arr)
            {
                Console.WriteLine(item+":"+item.Length);
            }

        }

        /// 
        /// 正则表达式分割字符串二
        /// 
        static void RegexSplit1()
        {
            string str = "Fish_Cat.Dog@tigger-lion";
            string pattern = @"_|\.|@|-";  //多个字符分割
            var arr = Regex.Split(str, pattern, RegexOptions.IgnorePatternWhitespace);
            foreach (var item in arr)
            {
                Console.WriteLine(item + ":" + item.Length);
            }

        }

结果:

C#中使用正则表达式-Regex类的使用示例_第1张图片                 C#中使用正则表达式-Regex类的使用示例_第2张图片

Regex.Replace方法替换字符串,示例如下:

        /// 
        /// 正则表达式替换字符串一
        /// 
        static void RegexReplace()
        {
            string str = "price: 100.98";
            string pattern = @"\b\d+\.\d+\b";   //匹配字符串中的数字“100.98"

            Console.WriteLine(Regex.Replace(str,pattern,"$$$&"));

        }


        /// 
        /// 正则表达式替换字符串二
        /// 
        static void RegexReplace1()
        {
            string str = "12345";
            string pattern = @"<|>|/";   //替换多个匹配的字符
            Console.WriteLine(Regex.Replace(str, pattern, " "));

        }

结果:

   

Regex.Match方法,默认匹配到第一项,示例如下:

        static void RegexMatch()
        {
            string str = "123455678";
            string pattern = @"\d+";   //匹配数字

            //默认匹配到第一项
            var match = Regex.Match(str, pattern);

            //匹配成功
            while(match.Success)
            {
                //匹配项的值
                Console.WriteLine(match.Value);

                //下一个匹配项
                match = match.NextMatch();
            }
                
        }

结果:

C#中使用正则表达式-Regex类的使用示例_第3张图片

Regex.Matchs方法,匹配到的所有项,示例如下:

        static void RegexMatchs()
        {
            string str = "123455678";
            string pattern = @"\d+";

            //获取所有匹配项
            var matchs = Regex.Matches(str,pattern);

            Console.WriteLine(matchs.Count);

            //遍历匹配项
            foreach (Match item in matchs)
            {
                //输出匹配项的值及位置
                Console.WriteLine(item.Value+",pos:"+item.Index);
                Console.WriteLine(item.Result("$&,匹配替换后"));   //等同于Replace
            }    

        }

 结果:

C#中使用正则表达式-Regex类的使用示例_第4张图片

Match对象中的Groups(分组)属性,匹配到的所有项,示例如下:

        /// 
        /// 正则匹配分组,正则表达式中要使用分组才能使用
        /// 
        static void RegexGroups()
        {
            string str = "Year: yyyy-MM-dd";
            
            //正则中有分组
            string pattern = @"\b([y]{2,4})-([M]{1,2})-([d]{1,2})\b";

            //获取匹配项
            var match = Regex.Match(str, pattern);
            
            //匹配成功
            if (match.Success)
            {
                //将匹配到的项分组输出
                for (var i = 0; i < match.Groups.Count; i++)
                {
                    Console.WriteLine(match.Groups[i].Value);
                }
            }

            

        }

结果:

C#中使用正则表达式-Regex类的使用示例_第5张图片

你可能感兴趣的:(C#相关,Asp.net,WebForm,Asp.net,MVC,c#,正则表达式,Regex)