A09_正则表达式

来源:互联网 发布:js 当前时间加1小时 编辑:程序博客网 时间:2024/06/06 06:37

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Text.RegularExpressions;//正则表达式的概念  //检查,检索,替换那些符合某个模式的文本  //屏蔽或替换用户输入的“非法”字符串。  namespace A09_RegularExpression{    class Demo2    {        // ^  "定位"元字符,表示开头          // $  "定位"元字符,表示结尾         // .  表示任意字符        // \d 表示数字        // \w 表示字母、数字、下划线、汉字。        // *  表示某个元字符规则重复0-N次        // [] "包含"与[^]"非"元字符        // {n} 匹配前面的字符n次        // {n,} 匹配前面的字符n次或多于n次        // {n,m} 匹配前面的字符n到m次        // ?  重复0次或者1次        // +  重复1次或者多次        // *  表示零到多个元字符,或表示重复零次或者更多次        // |  将两个匹配条件进行逻辑“或”运算        // () 用小括号来制定子表达式        //开始位置的元字符 ^        public void Test1()        {            string str = "Hello everyone ! ";            string strResult = Regex.Replace(str, "^", "23333 ");            Console.WriteLine(strResult);        }        //结束位置的元字符 $        public void Test2()        {            string str = "Hello everyone ! ";            string strResult = Regex.Replace(str, "$", "23333 ");            Console.WriteLine(strResult);        }        //以数字开头,以数字结尾,且中间有任意多个数字        public void Test3()        {            string str = "12345a678";            bool isMatch = JudgeNumber(str);            if (isMatch)            {                Console.WriteLine("全部都是数字");            }            else            {                Console.WriteLine("存在非数字字符");            }        }        //判断字符串是否全部由数字字符组成        private bool JudgeNumber(string strNumber)        {            string strPattern = @"^\d*$";            return Regex.IsMatch(strNumber, strPattern);        }        //验证用户名,字母,数字,汉字,下划线组成。        public void Test4()        {            string str = "CNLithium_523";            if (JudgeUserName(str))            {                Console.WriteLine("用户名合法");            }            else            {                Console.WriteLine("用户名中存在非法字符");            }        }        private bool JudgeUserName(string strUser)        {            string strPattern = @"^\w*$";            return Regex.IsMatch(strUser, strPattern);        }        //[]"包含"与[^]"非"元字符        //字符串替换        public void Test5()        {            string strResult = null;            string strContent = "Hello EveryOne !!!! Son of Bitch !!!!";            string strPattern = @"Son of Bitch";            strResult = Regex.Replace(strContent, strPattern, "***");            Console.WriteLine(strResult);        }        public void Test6()        {            string strContent = "bck";            if (JudgeMessage(strContent))            {                Console.WriteLine("信息中包含非法字符");            }            else            {                Console.WriteLine("信息合法");            }        }        private bool JudgeMessage(string strMessage)        {            string strPattern = @"[a]";            return Regex.IsMatch(strPattern, strMessage);        }        //全部是数字且5-12位之间        public void Test7()        {            string qq1 = "5761";            string qq2 = "59847dbv";            string qq3 = "5984758874";            string strPattern = @"^\d{5,12}$";            Console.WriteLine(Regex.IsMatch(qq1, strPattern));            Console.WriteLine(Regex.IsMatch(qq2, strPattern));            Console.WriteLine(Regex.IsMatch(qq3, strPattern));        }        //提取字母和数字        public void Test8()        {            string str = "56484657#$^$&adfg$!#564";            string strPattern = @"\d|[a-z]"; //整数或者字母a-z            MatchCollection CollArray = Regex.Matches(str, strPattern);            foreach (Match item in CollArray)            {                Console.Write(item);            }            Console.WriteLine("");        }        //提取“标签”        public void Test9()        {            string[] strTagArray;            string strTag = "C#,ProgramLaugrage;Toturial.RegularExpression";            string strPattarn = @"[,]|[;]|[.]";//包含,或者;或者.            strTagArray = Regex.Split(strTag, strPattarn);            foreach (var item in strTagArray)            {                Console.WriteLine(item);            }        }        //()进行分组        public void Test10()        {            string str = "213abllab22哈哈哈";            //模式定义,(ab+两个任意字符)X 2            string strPattern = @"(ab\w{2}){2}";            Console.WriteLine(Regex.Replace(str, strPattern, "***"));        }        /// <summary>        /// 验证电话号码是否合法        /// (010)-12345678        /// 010-12345678        /// 01012345678        /// </summary>        public void Test11()        {            string strTel1 = "(010)-12345678";            string strTel2 = "010-12345678";            string strTel3 = "01012345678";            string strTel4 = "010)-12345678";            string strTel5 = "(010)1234-5678";            string strTel6 = "010-123-45678";            string strTel7 = "010-1234adfe";            //定义模式            string strPattern = @"\(0\d{2,3}\)[-]?\d{7,8}|^0\d{2,3}[-]?\d{7,8}$";            Console.WriteLine("Tel1 = " + Regex.IsMatch(strTel1, strPattern));            Console.WriteLine("Tel2 = " + Regex.IsMatch(strTel2, strPattern));            Console.WriteLine("Tel3 = " + Regex.IsMatch(strTel3, strPattern));            Console.WriteLine("Tel4 = " + Regex.IsMatch(strTel4, strPattern));            Console.WriteLine("Tel5 = " + Regex.IsMatch(strTel5, strPattern));            Console.WriteLine("Tel6 = " + Regex.IsMatch(strTel6, strPattern));            Console.WriteLine("Tel7 = " + Regex.IsMatch(strTel7, strPattern));        }        static void Main(string[] args)        {            Demo2 obj = new Demo2();            obj.Test1();            obj.Test2();            obj.Test3();            obj.Test4();            obj.Test5();            obj.Test6();            obj.Test7();            obj.Test8();            obj.Test9();            obj.Test10();            obj.Test11();        }    }    //常用正则表达式    /*     * 效验密码强度                ^(?=.*[0-9].*)(?=.*[A-Z].*)(?=.*[a-z].*).{8,20}$  必须包含大写字母小写字母和数字 8-20位     * 效验中文                   [\u4e00-\u9fa5]     * 判断一个合法的IP4地址       ^((25[0-5]|2[0-4]\d|[1]{1}\d{1}\d{1}|[1-9]{1}\d{1}|\d{1})($|(?!\.$)\.)){4}$     * 效验E-mail地址              ^\w+([-_.]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,6})+$           * 效验身份证号码              ^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$     * 效验金额                    ^(([1-9][0-9]*)|(([0]\.\d{1,2}|[1-9][0-9]*\.\d{1,2})))$     * 效验日期                    ^(^(\d{4}|\d{2})(\-|\/|\.)\d{1,2}\3\d{1,2}$)|(^\d{4}年\d{1,2}月\d{1,2}日$)$     * 效验手机号                  ^((13[0-9])|(14[5|7])|(15([0-3]|[5-9]))|(18[0,5-9]))\d{8}$     */}





原创粉丝点击