在C#中关于正则表达式的简单使用

正则表达式:用来判断某一个字符是否匹配一定的格式。
注意点:各个语言的规则是通用的。
下面一些简单的例子来展示正则表达式的一些运用。

using System;
using System.Text.RegularExpressions;
class Program
{
    public static void Main(string[] args)
    {
        //^:匹配一个字符串的开头
        //$:匹配一个字符串的结尾

        //[]:匹配一位字符,这一位字符可以是这个中括号中的任何一个
        //[1-9] [A-Za-z1-9]:多种选择就这么写,注意不要带空格
        //[1-9]:这一位字符可取的范围1-9
        //[a-zA-Z]:这一位字符可取的范围:a-z和A-Z
        //[^1-9]:这一位字符可以是1-9之外的任何字符

        // +:前面的一位字符连续出现了1次或多次   Regex r = new Regex("^hel+lo$");就是对应+之前l出现的次数
        // *: 前面的一位字符连续出现了0次或多次
        // ?: 前面的一位字符连续出现了0次或1次

        //{m}:前面的一位字符连续出现了m次
        //{m,}:前面的一位字符至少连续出现了m次
        //{m,n}:前面的一位字符出现了{m,n}次

        //特殊符号,更多的可以百度去了解
        // \d:[0-9]
        // \D:[^0-9]
        //写一个正则表达式去表示QQ规则:
        //Regex r = new Regex("^[1-9]\\d{4,10}$")
        //注意需要\\d是因为在字符串中表达转义字符多一个\,或者用@去表达转义字符

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

        //实例化一个正则表达式的对象
        Regex r = new Regex("^hello$");
        //如果不带^$,那么就是比较字符串中是否包含r,包含就是true,不包含就是false,都带着就是一一对应,
        //一个一个的去比较,有一个对应不上就是false
        bool result = r.IsMatch("hello world");//结果为false

        Regex t = new Regex("^[abcdefgh]]ello world$");
        bool res = t.IsMatch("hello world");
        Console.WriteLine(result);
    }
    //1.判断一个手机号是否是合法的
    public static bool CheckPhoneNumber(string number)
    {
        //正则
        string patterns = "^1[34578]\\d{9}$";
        //正则的两种判断方式
        //①
        //Regex r = new Regex(patterns);
        //bool res = r.IsMatch(number);
        //return res;

        //②判断number这个字符是否匹配pattern
        return Regex.IsMatch(number, patterns);
    }

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

    //3.替换字符串
    //Lily   lucy        Uncle Wang   Polly        JimGreen
    //替换成Lily,lucy,UncleWang,Polly,JimGreen
    public static string Repace(string names)
    {
        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;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值