C#正則表示式(Regex)
阿新 • • 發佈:2018-12-26
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(); } }