C#中简单的正则表达式

学习C#中简单的正则表达式

感谢千峰教育的学习视频


正则表达式:用来判断某个字符串是否匹配一定的格式

没有代码提示,就是一个字符串

实例:

//判断QQ号
//1、全是数字
//2、不能以0开头
//3、长度范围:[5,11]
using System;
using System.Text.RegularExpressions;
public class Example
{
    public static void Main()
    {
        bool result2 = Regex.IsMatch("123456789", "^[1-9]\\d{4,10}$");
        Console.WriteLine(result2);
    }
}
using System;
using System.Text.RegularExpressions;
public class Example
{
    public static void Main(string[] args)
    {
        // ^:匹配一个字符串的开头
        // $:匹配一个字符串的结尾
        // []:匹配一位字符,这一位字符可以是这个中括号中的任何一个
        // [a-z]:匹配a-z]中任意一个字符
        // [a-zA-Z1-9]:匹配a-z,A-Z,1-9中任意一个字符
        // [^1-9]:表示这一位字符可以是[1-9]之外的任何字符

        // +:前面的一位字符连续出现了一次或多次
        // *:前面的一位字符连续出现了0次或多次
        // ?:前面的一位字符连续出现了0次或1次
        // {m}:前面的一位字符连续出现了m次
        // {m,}:前面的一位字符至少连续出现了m次
        // {m,n}:前面的一位字符出现了[m,n]次

        // \d:[0-9]
        // \D:[^0-9]
        //由于\d或其他字母,在字符串中可能会被当作转义字符,所以要在前面再加一个\,也就是\\d,或在字符串开头加@,即@""

        // . :通配符,可以匹配任意字符

        //实例
        bool result0 = CheckPhoneNumber("18888888888");
        Console.WriteLine(result0);

        bool result1 = CheckEmail("xc.luds@gmail.com");
        Console.WriteLine(result1);

        string result2 = FixNames("Lily  Lucy     Uncle Wang    Polly    JimGreen");
        Console.WriteLine(result2);

        string result3 = CheckPhone("15361130703");
        Console.WriteLine(result3);
    }
    //1、判断一个手机号是否是合法
    public static bool CheckPhoneNumber(string number)
    {
        //正则
        string pattern = "^1[34578]\\d{9}$";

        //判断是否匹配规则
        return Regex.IsMatch(number, pattern);
         
    }

    //2、判断一个邮箱是否是合法的
    public static bool CheckEmail(string Email)
    {
        string pattern = "^[0-9a-zA-Z_\\.]+@[0-9a-zA-Z]+\\.com$";
        return Regex.IsMatch(Email, pattern);
    }

    //3、替换字符串
    public static string FixNames(string names)
    {
               //将 Lily   Lucy     Uncle Wang     Polly    JimGreen
        //替换为 Lily,Lucy,Uncle Wang,Polly,JimGreen
        string pattern = " {2,}";
        return Regex.Replace(names, pattern, ",");
    }

    //4、屏蔽手机号中间四位
    public static string CheckPhone(string phone)
    {
        // 18888888888 =>188****8888
        //分组:可以将一个字符串分成几部分
        //(): 用来表示一个分组
        string pattern = "^(1[34578]\\d)(\\d{4})(\\d{4})$";

        //获取每一分组的字符串
        Match match=Regex.Match(phone, pattern);//获取一个匹配的号码
        GroupCollection groups = match.Groups;//获取到所有分组
        string group1 = groups[1].Value;
        string group2 = groups[2].Value;
        string group3 = groups[3].Value;

        return group1+"****"+group3;
    }
}

 

posted on 2020-05-19 17:09  无畏勇者城之内  阅读(153)  评论(0编辑  收藏  举报