正则表达式与委托初探

正则表达式
	正则表达式是一种用于匹配、提取以及替换的格式化字符串。该字符串中包含原始匹配字符,以及一些表征其他意义的元字符。
	首先正则表达式是字符串
	其次包含正常字符
	然后包含元字符
	最后用于匹配、提取和替换
基本元字符
.:任意一个换行字符
[]:集合匹配,匹配一个[]中出现的字符
():调整优先级,还有一个分组的功能
|:或的意思,优先级最低(foot或food		foo(t|d))
限定元字符:
+:紧跟这个元素前面的元素出现1次或多次
*:紧跟这个元素前面的元素出现0次或多次
?:有或没有 (可以用于非贪婪模式  [123]+?)
{n}:紧跟这个元素前面的元素出现n次
{n,}
{n,m}
收尾元字符:
^:必须以某某字符开头,在[^]中表示否定
$:必须以某某结尾,分组后对组的引用($1)
简写元字符:
\d:digit
\w:word
\s: space

-> C#中
		命名空间:System.Text.RegylarExpressions;
		Regex
		Match
		MatchCollection
	-> 四个模型
		bool Ragex.IsMatch(处理文本, 正则表达式);
		Match Regex.Match(处理文本, 正则表达式);
		MatchCollection Regex.Matches(处理文本, 正则表达式);
		string Regex.Replace(处理字符串, 正则表达式, 替换字符串);
		
		static void Main(string[] args)
        {
            Match str = Regex.Match("13517247151", @"\d{11}");
            if (str.Success) 
            {
                Console.WriteLine("匹配成功");
            }

            string content = File.ReadAllText("留下你的Email.htm", Encoding.UTF8);
            MatchCollection mc = Regex.Matches(content, @"([a-zA-Z0-9\.]+)@(\w+\.\w+)");
            foreach (Match m in mc)
            {
                Console.WriteLine("用户名:{0},域名:{1}", m.Groups[1].Value, m.Groups[2].Value);
            }

            string str1 = "1234";
            MatchCollection mcc = Regex.Matches(str1, @"\d+");//\d+?飞贪婪匹配

            string str2 = "今天是2014年7月2日";
            Console.WriteLine(Regex.Replace(str2, @"(\d+)年(\d+)月(\d+)日", "$1-$2-$3"));

        }
		
委托初探
	-> 将方法赋值给变量进行使用
	-> 使用委托步骤
		-> 1、先要有方法
		-> 2、定义委托的类型
			public delegate 返回值 委托的类型名(参数列表);
		-> 3、声明委托变量
			委托的类型名 变量名;
		-> 4、注册方法
			变量名 = 方法名;
		-> 5、将变量名看作方法的别名直接调用
			变量名();
			
namespace _01委托初探
{
    class Program
    {
        static void Main(string[] args)
        {
            Monitor monitor = new Monitor();
            Student stu = new Student();
            ConsoleKeyInfo keyInfo;
            while (true) 
            {
                keyInfo = Console.ReadKey();
                if (keyInfo.KeyChar != '\r') //不按回车时才委托
                {
                    stu.del = monitor.ReceiveEMS;
                }
                stu.ReceiveDel();//执行代理(不委托给我,我自己也可以执行)
            }
        }
    }
    delegate void DelReceive();//定义委托类型,类型安全(找个人收快递,我得信任他(方法的返回值跟参数必须要跟委托声明的一样))
    class Monitor 
    {
        public void ReceiveEMS() //收快递的方法
        {
            Console.WriteLine("班长收快递");
        }
    }
    class Student 
    {
        public DelReceive del;   //具有代理的能力
        public void ReceiveDel() //代理方法(不委托给我,我自己也可以执行)
        {
            if (del != null)
                del();
            else
                Console.WriteLine("我木有收到快递");
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值