C#正則表達式簡單案例解析

正則表達式主要用於字符串的操做。正則表達式

1.Regex.IsMatch:判斷指定的字符串是否符合正則表達式。編碼

2.Regex.Match:提取匹配的字符串,只能提取到第一個符合的字符串。這裏還能夠使用組來提取。code

經過括號爲正則表達式分組,這樣在提取時就能獲取到組的信息。返回的類型是Match,經過Value拿到值。blog

組信息是經過索引區分的,其中0表示整個匹配的字符,1表示第一個括號內的字符。索引

string sss = Regex.Match("", "a(.)d").Groups[1].Value;

3.Regex.Matches,提取所有符合的字符。返回值是MatchCollection。操做和Match一致。字符串

4.正則表達式的書寫和業務的分析有關,須要具體分析規律。string

5.|的優先級很低。io

"a|bcd",將匹配到a或bcd。

  

            //.NET 默認使用的是Unicode匹配模式 ,能夠經過RegexOption枚舉加於限制            //Unicode編碼表示「全角」輸入
            //去除重複的數據 這裏的\1表示自引用,表明引用(.),$1表示反引用,也是表明(.),只不過是在不一樣的地方引用須要使用不一樣的表達方式            //這裏會把所有的a替換爲單個的a,bc同理。            //(.)匹配除回車換行覺得的全部字符,\1則自引用(.),+表示出現一次或屢次,這樣無論這個字符出現屢次,都將被替換成(.),完成了業務的需求
            string s = "aaaabbbbccc";
            textBox1.AppendText(Regex.Replace(s, @"(.)\1+", "$1"));
                        //郵箱的規律是包含@和.
            string email = "sdfsd@qq.com";
            //須要將.點轉義             //經過\w匹配全部的字符,接上@,接上\w,接上.,接上\w
            textBox1.AppendText(Regex.IsMatch(email, @"\w+@\w+\.[a-zA-Z]+").ToString());
                        
            string msg = "";
            //限定符後加?表示終止貪婪模式,儘量的少匹配
            //默認狀況下是貪婪模式,儘量多的匹配
            Match m1 = Regex.Match(msg, "(.)+?");

            //判斷是不是合法的郵編  郵政編碼爲5位數字,這裏須要使用^$使徹底匹配
            //^表示開始 $表示結尾 一塊兒用表示要徹底匹配
            Regex.IsMatch("", "^[0-9]{6}$");

            //判斷是否爲身份證號碼  身份證號碼能夠爲15位或者18位
            Regex.IsMatch("", @"[\d]{15}|[\d]{17}[0-9xX]");
相關文章
相關標籤/搜索