C#复习正则表达式

由于前段时间为了写工具学的太J8粗糙  加上最近一段时间太浮躁 所以静下心来复习 一遍以前学的很弱的一些地方

1 委托
        public delegate double weituo(double a, double b);
        public static double test1(double a,double b)
        {
            return a * b;
        }
        public static double test2(double a,double b)
        {
            return a / b;
        }
        public static void test3(weituo test)
        {
            Console.WriteLine(test(2.5, 0.5));
        }
        static void Main(string[] args)
        {
            //weituo test;
            //test = test2;
            //test3(test);            
        }

 多播委托

weituo test;
test = test1;
test += test2;
test3(test);

但是要求test1 test2方法必须没有返回值即void

 

匿名函数

    public delegate double weituo(double a);
        static void Main(string[] args)
        {
            weituo f3 = delegate(double x)
            {
                return 3 * x + 5;
            };
            Console.WriteLine(f3(3.5));
        }

 Lambada函数

weituo f3 = (double x) => { return 3 * x + 5; };
            Console.WriteLine(f3(3.5));

 

file与filestream读取文件的区别


file读取文件,是一次性把文件全都装载到内存当中。这个对于几百K,几M的文件还可以,但是对于
几个G的文件就尴尬了。据说,有个面试题是,面对几个G的txt文件,你怎么检索。


filestream 文件流读取文件。按照个人设定的容量,每次读取这么多,分批次处理,比如一个200M的txt,
我规定每次读取5M,再来个for循环,就可以把这200M的东西,化整为零,逐批次处理。

 

C#string与stringBuilder的区别

string的缺点是每次字符串变量的内容发生了改变时,都必须重新分配内存。你想想,如果创建一个迭代100000次的循环,每次迭代都将一个字符连接到字符串,这样内存中就会有100000个字符串,每个字符串仅仅与前一个字符串相伴只是有一个字符不同,性能影响是很大的。StringBuilder通过分配一个缓存,就是一个工作区来解决这些问题,在工作区中队字符串应用StringBuilder类的相关方法。包括添加,删除,移除,插入和替换字符等等。执行完之后,将调用ToString方法把工作区中的内容转换为一个字符串,方便赋给一个字符串变量。这样StringBuilder会提升一些性能。

 正则表达式复习

 

 
 

 

 

 

可选字符集

 

 

 

 数量限定符

 

string text2 = "lg log loog looog loooog looooog";
            Regex expression = new Regex(@"l(oo)+g");  代表()+表示括号内的一次或者多次 不加括号代表左边一个 其他都是这样

 

 

 

* = >0个或多个
+ = >1个或多个
? = >0次或1次
lo{3}g 匹配到looog l(00){3}g 匹配到loooooog
lo{3,}g表示3往上次数looog loooog 无上限
lo{3,5}g3次到5次
*?将前面的字符重复0次或多次 尽量少重复
+?一次活多次尽量少重复

贪婪匹配(@"<.*>");

懒惰匹配(@"<.*?>");

 

 

 ^从头部开始匹配

$从末尾开始匹配

 

 ^和$类似还有\b在正则表达式前面跟^一样 在后面跟$一样

 

转载于:https://www.cnblogs.com/test404/p/6679327.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值