c#正则表达式——指定匹配位置

string pattern = @"^[a-z]\w";//^后面的模式必须位于字符串的开始
            string input = "abc123efg456!\nefg456";
            Regex regex = new Regex(pattern);
            var matchCollection = regex.Matches(input);
            foreach (Match item in matchCollection)
            {
                Console.WriteLine(item.Value == " " ? "空白" : item.Value);
            }

            Console.WriteLine();
            regex = new Regex(pattern, RegexOptions.Multiline);//指定多行时多行生效
            matchCollection = regex.Matches(input);
            foreach (Match item in matchCollection)
            {
                Console.WriteLine(item.Value == " " ? "空白" : item.Value);
            }


            Console.WriteLine();
            pattern = @"[a-z][1-9]$";//$前面的模式必须位于字符串的末尾
            input = "abc123efg6\nefg6";
            regex = new Regex(pattern);
            matchCollection = regex.Matches(input);
            foreach (Match item in matchCollection)
            {
                Console.WriteLine(item.Value == " " ? "空白" : item.Value);
            }

            Console.WriteLine();
            regex = new Regex(pattern, RegexOptions.Multiline);//$多行也生效
            matchCollection = regex.Matches(input);
            foreach (Match item in matchCollection)
            {
                Console.WriteLine(item.Value == " " ? "空白" : item.Value);
            }


            Console.WriteLine();
            pattern = @"\A[a-z]\w";//\A后面的模式必须位于字符串的开始处,而且忽略了多行标志
            input = "abc123efg456!\nefg456";
            regex = new Regex(pattern);
            matchCollection = regex.Matches(input);
            foreach (Match item in matchCollection)
            {
                Console.WriteLine(item.Value == " " ? "空白" : item.Value);
            }

            Console.WriteLine();
            regex = new Regex(pattern, RegexOptions.Multiline);//\A后面的模式必须位于字符串的开始处,而且忽略了多行标志
            matchCollection = regex.Matches(input);
            foreach (Match item in matchCollection)
            {
                Console.WriteLine(item.Value == " " ? "空白" : item.Value);
            }

            Console.WriteLine();
            pattern = @"[1-9]\z";//\z前面的模式必须位于字符串的末尾处,而且忽略了多行标志
            input = "abc123efg456\nefg456\n";
            regex = new Regex(pattern);
            matchCollection = regex.Matches(input);
            foreach (Match item in matchCollection)
            {
                Console.WriteLine(item.Value == " " ? "空白" : item.Value);
            }

            Console.WriteLine();
            regex = new Regex(pattern, RegexOptions.Multiline);//\z前面的模式必须位于字符串的末尾处,而且忽略了多行标志
            matchCollection = regex.Matches(input);
            foreach (Match item in matchCollection)
            {
                Console.WriteLine(item.Value == " " ? "空白" : item.Value);
            }

            Console.WriteLine();
            pattern = @"[1-9]\Z";//\z前面的模式必须位于字符串的末尾处或者是字符串末尾\n,而且忽略了多行标志
            input = "abc123efg456\nefg456\n";
            regex = new Regex(pattern);
            matchCollection = regex.Matches(input);
            foreach (Match item in matchCollection)
            {
                Console.WriteLine(item.Value == " " ? "空白" : item.Value);
            }

            Console.WriteLine();
            regex = new Regex(pattern, RegexOptions.Multiline);//\z前面的模式必须位于字符串的末尾处或者是字符串末尾\n,而且忽略了多行标志
            matchCollection = regex.Matches(input);
            foreach (Match item in matchCollection)
            {
                Console.WriteLine(item.Value == " " ? "空白" : item.Value);
            }



            Console.WriteLine();
            pattern = @"[1-9]\b";//匹配一个单词边界,这个边界就是单词字符和非单词字符的点,单词字符是[a-zA-Z0-9]中的任一字符,本模式指的是数字0到9后面必须是一个非单词
            input = "abc123efg456\nefg456\n";
            regex = new Regex(pattern);
            matchCollection = regex.Matches(input);
            foreach (Match item in matchCollection)
            {
                Console.WriteLine(item.Value == " " ? "空白" : item.Value);
            }

            Console.WriteLine();
            regex = new Regex(pattern, RegexOptions.Multiline);//匹配一个单词边界,这个边界就是单词字符和非单词字符的点,单词字符是[a-zA-Z0-9]中的任一字符,和多行没有关系
            matchCollection = regex.Matches(input);
            foreach (Match item in matchCollection)
            {
                Console.WriteLine(item.Value == " " ? "空白" : item.Value);
            }



            Console.WriteLine();
            pattern = @"[1-9]\B";//\B和\b是相反的,所以\B肯定是单词与单词,非单词与非单词之间的点,本模式指的是数字0到9后面必须是一个单词
            input = "abc123efg456\nefg456\n";
            regex = new Regex(pattern);
            matchCollection = regex.Matches(input);
            foreach (Match item in matchCollection)
            {
                Console.WriteLine(item.Value == " " ? "空白" : item.Value);
            }

            Console.WriteLine();
            regex = new Regex(pattern, RegexOptions.Multiline);
            matchCollection = regex.Matches(input);
            foreach (Match item in matchCollection)
            {
                Console.WriteLine(item.Value == " " ? "空白" : item.Value);
            }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

c#上位机

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值