- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C正则表达式整理备忘
C#正则表达式整理备忘 (1) “@”符号?“@”虽然并非C#正则表达式的“成员”,但是它经常与C#正则表达式出双入对。“@”表示,跟在它后面的字符串是个“逐字字符串”,不是很好理解,举个例子,以下两个声明是等效的:?string x=D:\\My Huang\\My Doc;?string y = @D:\My Huang\My Doc;?事实上,如果按如下声明,C#将会报错,因为“\”在C#中用于实现转义,如“\n”换行:?string x = D:\My Huang\My Doc;
(2) 基本的语法字符。?\d??????? 0-9的数字?\D??????? \d的补集(以所以字符为全集,下同),即所有非数字的字符?\w?????? 单词字符,指大小写字母、0-9的数字、下划线?\W????? \w的补集?\s?????? 空白字符,包括换行符\n、回车符\r、制表符\t、垂直制表符\v、换页符\f?\S?????? \s的补集?.???????? 除换行符\n外的任意字符?[…]??? 匹配[]内所列出的所有字符?[^…]? 匹配非[]内所列出的字符?下面提供一些简单的示例:
1.??? string?i?=?\n;
2.??? string?m?=?3;
3.??? Regex?r?=?new?Regex(@\D);
4.??? //同Regex?r?=?new?Regex(\\D);
5.??? //r.IsMatch(i)结果:true
6.??? //r.IsMatch(m)结果:false
7.??? ?
8.??? string?i?=?%;
9.??? string?m?=?3;
10. Regex?r?=?new?Regex([a-z0-9]);
11. //匹配小写字母或数字字符
12. //r.IsMatch(i)结果:false
13. //r.IsMatch(m)结果:true
(3) 定位字符“定位字符”所代表的是一个虚的字符,它代表一个位置,你也可以直观地认为“定位字符”所代表的是某个字符与字符间的那个微小间隙。^??????? 表示其后的字符必须位于字符串的开始处$??????? 表示其前面的字符必须位于字符串的结束处\b?????? 匹配一个单词的边界\B????? 匹配一个非单词的边界另外,还包括:\A? 前面的字符必须位于字符处的开始处,\z? 前面的字符必须位于字符串的结束处,\Z? 前面的字符必须位于字符串的结束处,或者位于换行符前下面提供一些简单的示例:
1.??? string?i?=?Live?for?nothing,die?for?something;
2.??? Regex?r1?=?new?Regex(^Live?for?nothing,die?for?something$);
3.??? //r1.IsMatch(i)?true
4.??? Regex?r2?=?new?Regex(^Live?for?nothing,die?for?some$);
5.??? //r2.IsMatch(i)?false
6.??? Regex?r3?=?new?Regex(^Live?for?nothing,die?for?some);
7.??? //r3.IsMatch(i)?true
8.??? ?
9.??? string?i?=?@Live?for?nothing,
10. die?for?something;//多行
11. Regex?r1?=?new?Regex(^Live?for?nothing,die?for?something$);
12. Console.WriteLine(r1?match?count:?+?r1.Matches(i).Count);//0
13. Regex?r2?=?new?Regex(^Live?for?nothing,die?for?something$,?RegexOptions.Multiline);
14. Console.WriteLine(r2?match?count:?+?r2.Matches(i).Count);//0
15. Regex?r3?=?new?Regex(^Live?for?nothing,\r\ndie?for?something$);
16. Console.WriteLine(r3?match?count:?+?r3.Matches(i).Count);//1
17. Regex?r4?=?new?Regex(^Live?for?nothing,$);
18. Console.WriteLine(r4?match?count:?+?r4.Matche
文档评论(0)