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

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

        /// <summary>
        /// 正则表达式分割字符串一
        /// </summary>
        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);
            }

        }

        /// <summary>
        /// 正则表达式分割字符串二
        /// </summary>
        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);
            }

        }

结果:

                 

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

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

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

        }


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

        }

结果:

   

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

        static void RegexMatch()
        {
            string str = "<html>12345<body>5678</body></html>";
            string pattern = @"\d+";   //匹配数字

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

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

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

结果:

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

        static void RegexMatchs()
        {
            string str = "<html>12345<body>5678</body></html>";
            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
            }    

        }

 结果:

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

        /// <summary>
        /// 正则匹配分组,正则表达式中要使用分组才能使用
        /// </summary>
        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);
                }
            }

            

        }

结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值