C#正则表达式练习题

C#正则表达式练习题

1.完成手机号的验证:

while (true)
            {

                 *1为开头;
                    2--第二位可为3,4,5,7,8,中的任意一位;
                    3--最后以0-99个整数结尾。
                     
                Console.WriteLine("请输入合法的手机号");
                //手机号的正确格式:11位,纯数字,开头不能为0
                string sj = Console.ReadLine();
                //按照上面规则写正则
                string pattern =@"^1[3578]\d{9}$";
                if (Regex.IsMatch(sj, pattern))
                {
                    Console.WriteLine("合法");
                }
                else
                {
                    Console.WriteLine("不合法");
                }

2.完成合法邮箱验证:

while (true)
            {
                /*@之前必须有内容且只能是字母(大小写)、数字、下划线(_)、
                  @和最后一个点(.)之间必须有内容且只能是字母(大小写)、数字、点(.)、减号(-),且两个点不能挨着
                  最后一个点(.)之后必须有内容且内容只能是字母(大小写)、数字且长度为大于等于2个字节,小于等于6个字节
                 */
            //验证邮箱
            string emailPattern = @"\w+@\w+.[a-z]{3}$";
            string emailPattern = @"^\w+([-+.]\w+)*@\w+				   ([-.]\w+)*\.\w+([-.]\w+)*$";
            while (true)
            {
                Console.WriteLine("请输入邮箱");
                string emailInput = Console.ReadLine();
                bool match = Regex.IsMatch(emailInput, emailPattern);
                if (match)
                {
                    Console.WriteLine("输入正确");

                }
                else
                {
                    Console.WriteLine("输入格式有误");
                }
            }

3.完成IP地址验证:

 while (true)
            {
                /*
                 * IPv4必须满足以下四条规则:
                    任何一个1位或者两位数字,即0~99;
                    任何一个以1开头的3位数字,即100~199;
                    任何一个以2开头,第二位数字在0~4之间的数字即200~249;
                    任何一个以25开头,第三位数字在0~5之间的三位数字,即250~255
                    首先满足第一条规则的正则是:
                    ((\d{1,2})
                    满足第二条规则的正则是:
                    (1\d{1,2})
                    满足第三条规则的正则是:
                    (2[0-4]\d)
                    满足第四条规则的正则是:
                    (25[0-5])
                    将其组合起来就能得到一个能匹配0~255的正则表达式了:
                    ((\d{1,2})|(1\d{1,2})|(2[0-4]\d)|(25[0-5]))
                    IPv4地址由4个这样的数字组成,中间用"."隔开,所以可以匹配IPv4的正则表达式为:
                    (((\d{1,2})|(1\d{1,2})|(2[0-4]\d)|(25[0-5]))\.){3}((\d{1,2})|(1\d{1,2})|(2[0-4]\d)|(25[0-5]))
                    使用边界匹配,不然256.1.1.1也会匹配成功,会匹配成56.1.1.1,那么最终正确的匹配IPv4的正则表达式为:
                    (?=(\b|\D))(((\d{1,2})|(1\d{1,2})|(2[0-4]\d)|(25[0-5]))\.){3}((\d{1,2})|(1\d{1,2})|(2[0-4]\d)|(25[0-5]))(?=(\b|\D))
                 */
                //验证IP地址

                string emailPattern = @"(?=(\b|\D))(((\d{1,2})|(1\d{1,2})|(2[0-4]\d)|(25[0-5]))\.){3}((\d{1,2})|(1\d{1,2})|(2[0-4]\d)|(25[0-5]))(?=(\b|\D))";
                while (true)
                {
                    Console.WriteLine("请输入IP地址");
                    string emailInput = Console.ReadLine();
                    bool match = Regex.IsMatch(emailInput, emailPattern);
                    if (match)
                    {
                        Console.WriteLine("输入正确");

                    }
                    else
                    {
                        Console.WriteLine("输入格式有误");
                    }
                }
             }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

IT-wanghanghang

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

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

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

打赏作者

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

抵扣说明:

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

余额充值