首页 > Windows开发 > 详细

C#学习记录5——正则表达式 Regular Expression

时间:2015-04-19 15:59:54      阅读:290      评论:0      收藏:0      [点我收藏+]

正则表达式,使用一个字符串来匹配符合一定标准的一系列字符串。非常利于检查字符串的格式,例如,注册登录时对信息格式的检查。

C#的正则表达式在命名空间System.Text.RegularExpressions下

例1.

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6 using System.Text.RegularExpressions;
 7 namespace RegexTest
 8 {
 9     class Program
10     {
11         static void Main(string[] args)
12         {
13             var str1 = "one, two; three  four";
14             Regex reg = new Regex(",|;| ");
15             foreach (string str in reg.Split(str1))
16             {
17                 if(str.Length != 0)
18                     Console.WriteLine(str);
19                 }
20             Console.ReadKey();
21         }
22     }
23 }

第六行,使用对应的命名空间
14行,创建了Regex的实例,括号里面的内容表示:单个逗号或单个分号或单个空格

15行foreach中,reg.Split(str1)表示通过调用reg实例的split方法,将str1按照正则表达式的形式分割

得到结果

技术分享

例2

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6 using System.Text.RegularExpressions;
 7 namespace RegexTest
 8 {
 9     class Program
10     {
11         static void Main(string[] args)
12         {
13             var str1 = "text, test tux tax.";
14             Regex reg = new Regex(@"(t\S+t)(\s|,\s|;\s|.)");
15             MatchCollection coll1 = reg.Matches(str1);
16             foreach (Match match in coll1)
17             {
18                 if (match.Length != 0)
19                     Console.WriteLine(match.ToString());
20             }
21             Console.WriteLine();
22             Regex reg2 = new Regex(@"(t\S+x)(\s|,\s|;\s|.)");
23             MatchCollection coll2 = reg2.Matches(str1);
24             foreach (Match match in coll2)
25             {
26                 if(match.Length != 0)
27                     Console.WriteLine(match.ToString());
28             }
29             Console.ReadKey();
30         }
31     }
32 }

使用match进行匹配

14行的意义是,匹配以t开始,中间有一个或多个非空字符(\S(大写)表示任意非空字符,+表示一个或多个),后跟t,最后加上空格(\s(小写)),或逗号和空格,或分号和空格,或dot符。 同样的22行,只是改为了后跟x

这里引号前的@符号,指的是不对引号内的内容进行转义,因此不需要在每个\s \S等之前再加一个\了。

15行 MatchCollection coll1 = reg.Matches(str1);

等号右侧返回了str1里符合正则表达式的匹配集合,赋值给matchcoll类型的coll1

结果

 

C#学习记录5——正则表达式 Regular Expression

原文:http://www.cnblogs.com/sywang/p/4439219.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!