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]");
相关文章
相关标签/搜索