随笔分类 -  C#

摘要:出于需要,自己写了个分割句子用的正则表达式,考虑了各种特殊情况,所以写的比较长 public static Regex UselessPunctionRegex = new Regex(@"'(?!(s|t|re|m)( |$))|\.$|\. |\.{2,}|©|`|~|!|@|#|\$|%|\^|\*|\(|\)|(^|[^\w])-+|-+($|[^\w])|_|=|\+|\[|\]... 阅读全文
posted @ 2012-07-05 17:35 伍浩铖 阅读(3465) 评论(2) 推荐(1) 编辑
摘要:转义匹配语法: “\”+实际字符 \ . * + ? | ( ) { }^ $ [ ]例如:\\匹配字符“\” \n 匹配换行 \r 匹配回车 \t 匹配水平制表符 \v 匹配垂直制表符 \f 匹配换页 \nnn 匹配一个8进制ASCII \xnn 匹配一个16进制ASCII \unnnn 匹配4个16进制的Uniode \c+大写字母 匹配Ctrl-大写字母 例如:\cS-匹配Ctrl+S注:在@“”类型的字符串里面输入双引号要写成两个双引号并列,如:若想表达:James "Wu"要写成:@"James ""Wu""&qu 阅读全文
posted @ 2012-03-02 10:55 伍浩铖 阅读(8249) 评论(0) 推荐(0) 编辑
摘要:泛型可以用于类,也可以用于函数。如 泛型类: public class MyClass<T> { public T MyElement { get; set; } } 泛型函数: public T ReturnElement<T>() { throw new NotImplementedException();... 阅读全文
posted @ 2012-01-17 14:18 伍浩铖 阅读(10306) 评论(2) 推荐(0) 编辑
摘要:普通的HTML标签的正则表达式为 @"<(!|/)?(.|\n)*?>" 上面的第二个问号是贪婪模式,找到一个>即停止。 但是如果告诉你有如下一个html标签的实例,上面的这个就不够用了 <a onclick="s_objectid='top picks 3 title'" href="?sid=18394376&amp;nid=1017&title=have-you-seen-t... 阅读全文
posted @ 2011-12-17 18:05 伍浩铖 阅读(13466) 评论(6) 推荐(2) 编辑
摘要:很多软件安装位置不一样,但是他们基本上会在注册表的同一个位置写下自己的名字和程序路径,这个位置就是: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths 所以只要去这个地方找软件路径就可以了。 你可以添加你知道的正确的文件名,就是它在注册表中的名字。比如office word在注册表中叫winword ... 阅读全文
posted @ 2011-11-18 16:51 伍浩铖 阅读(14208) 评论(0) 推荐(4) 编辑
摘要:有时候得到了一个List,我想把它随机排列一下顺序。而且如果针对不同类型的List都能用,就要用到泛型。 其实思想很简单,就是从原List中每次随机取一项,添加到新的List中,并在原List中删除。这样重复,直到原List为空为止。 不过要注意,如果要保护原List不受变化,就必须先Copy一份List,再在Copy上进行操作 public static List<T> G... 阅读全文
posted @ 2011-11-17 21:38 伍浩铖 阅读(14736) 评论(9) 推荐(4) 编辑
摘要:一个很简单的新手问题,有两种方法 1. 在代码的开头和结尾加两行代码就行了。 StreamWriter sw = new StreamWriter(@"F:\Test\ConsoleOutput.txt"); Console.SetOut(sw); Console.WriteLine("Here is the result:"); Console... 阅读全文
posted @ 2011-11-08 10:22 伍浩铖 阅读(11749) 评论(1) 推荐(3) 编辑
摘要:有时候我们希望把类的实例保存下来,以便以后的时候用。一个直观的方法就是StreamWriter把类写成一行,用\t分隔开每个属性,然后用StreamReader读出来。 但是这样太麻烦,代码行数较多,而且必须事先知道属性在行中的对应位置。这时候如果采用类序列化的方式保存就使得代码很简单: 假如你有一个类,在它的上面加上[Serializable]属性就可以了,表示这个类是可以序列化的 ... 阅读全文
posted @ 2011-11-01 20:55 伍浩铖 阅读(11850) 评论(3) 推荐(5) 编辑
摘要:本文是写给C#新手,老手就勿看了,讲的实际上就是LINQ,谢谢一楼的提醒。很多时候,从一个关系表中挑出一个我们需要的元素列表采用SQL语句是再容易不过的了,其实C#的List中也可以采用类似的方法,虽然List中集成了Select(), Where()等语句,不过如果你的判断规则较为复杂,或者想要看起来一目了然,以下的方法也是可行的:首先假设你有一个类public class People{ public string Name { get; set; } public int Age { get; set; }}并且有一些初始化语句List<People> PeopleList 阅读全文
posted @ 2011-11-01 15:00 伍浩铖 阅读(21129) 评论(7) 推荐(4) 编辑
摘要:有时候你希望提取键盘上所有的标点符号,并不能用@“\W”来搞,因为它等价于[^A-Za-z0-9],这样会把其他的字符比如中文或者俄文或者乱七八糟的其它字母提出来,用下面的正则表达式会方便点 Regex seperatorReg = new Regex(@"[~!@#\$%\^&\*\(\)\+=\|\\\}\]\{\[:;<,>\?\/""]+", RegexOptions.Ignore... 阅读全文
posted @ 2011-10-31 13:25 伍浩铖 阅读(7096) 评论(2) 推荐(2) 编辑
摘要:好多人想在运行或者调试含有大量数据或者比较慢C#程序的时候能够显示自己的程序完成的程度,这里有一个方法能发不断地修改cmd的同一行,以达到显示完成百分比的目的public void PrintPercentage(int FinishedCount, int TotalCount) { decimal finishedPercentage = Convert.ToDecimal(FinishedCount) / Convert.ToDecimal(TotalCount); Console.SetCursorPosition(0, Console.CursorT... 阅读全文
posted @ 2011-10-30 20:39 伍浩铖 阅读(2213) 评论(0) 推荐(1) 编辑