1. 程式人生 > >C#正則表示式(Regex)

C#正則表示式(Regex)

    class Program
    {
        //------------------[A-Za-z]+[0-9]---密碼
        //[A-Za-z] 匹配字母大小寫
        //+        匹配一個或多個前面的字元(字母大小寫)
        //[0-9]    匹配字母

        //------------------^\d{6}$---6位純數字郵編 
        //------------------^[1][3-5]\d{9}$---11位第一位是1,二三位是3,4,5的手機號
        //^        匹配行開始
        //\d       匹配數字(0-9)
        //{6}      個數限定符
        //$        匹配行結束

        //\D       匹配非數字
        //\w       匹配單詞字元(漢字、字母、數字、下劃線)
        //\W       匹配非單詞字元
        //\s       匹配空白字元(換行、空格、製表符等)
        //\S       匹配非空白字元

        //------------------^\d{15}$|^\d{18}$---18位或15純數字身份證編號
        //|        匹配滿足左右任一一個條件

        //------------------^[0-9]+\.[0-9]{2}$---兩位小數
        //\.       匹配小數點

        //------------------^...$---123 或  _la 或 abc  
        //.        匹配除換行外的任意字元

        //------------------^(0?[[1-9]|1[1-2]])$---12個月份(1-12)  
        //?        匹配0個或者1個前面的字元(0)

        //------------------^((0?[1-9])|((1|2)[0-9])|30|31)$---一個月的天數(1-31)  
        //30       匹配數字30

        //------------------^[0-9]*$---零個或多個數字  
        //*        匹配0個或者1個前面的字元(0-9的數字)

        //------------------^\d{6,18}$--六到十八位數字  
        //{6,18}   匹配6至18位數字

        //------------------^\+?[1-9][0-9]*$--非零正整數 
        //\+       匹配正號

        //------------------^\-[1-9][0-9]*$--非零負整數 
        //\-       匹配負號

        //------------------^c{5,}$--五個或五個以上的字母c 
        //{5,}     匹配五個或大於五個前面的字元(c)


        //using System.Text.RegularExpressions;

        static void test1()
        {
            var src = "藥藥切克鬧,我說傻b你說到";
            var ruleStr = "^[\u4E00-\u9FA5]{0,}$";
            var hanzi = "";
            var feiHanZi = "";
            var rule = new Regex(ruleStr);
            src.ToList().ForEach(a =>
            {
                if (rule.IsMatch(a.ToString()))
                {
                    hanzi += a;
                }
                else
                {
                    feiHanZi += a;
                }
            });
            Console.WriteLine("漢字:" + hanzi);
            Console.WriteLine("非漢字:" + feiHanZi);
            Console.WriteLine("漢字個數:" + hanzi.Length + "/" + src.Length);
        }

        static void test2(string replaceBy)
        {
            var src = "1a2b3c4d";
            var ruleStr = "[1-9]";

            var dest=Regex.Replace(src, ruleStr, replaceBy);

            Console.WriteLine("原始:" + src);
            Console.WriteLine("替換後:" + dest);
        }
        static void test3()
        {
            var src = "h5knud3xnt29";
            var ruleStr = "[1-9]";

            var dest = Regex.Split(src, ruleStr);
            dest.ToList().ForEach(a =>
            {
                a.Select(b=>b+1).ToList().ForEach(c=> {
                    Console.WriteLine((char)c);
                });
            });
            
           
        }
        static void Main(string[] args)
        {
            //test1();
           // test2("x");
            test3();
        }
    }