正则表达式在英文中写作(Regular Expression),根据正则表达式的使用范围和单词意思,.NET将其命名空间设置为System.Text.RegularExpressions;
在该命名空间内包括了8个基本的类:Capture、CaptureCollection、Group、GroupCollection、Match、MatchCollection、Regex和RegexCompilationInfo
Capture |
用于单个表达式捕获结果 |
CaptureCollection |
用于一个序列进行字符串捕获 |
Group |
表示单个捕获的结果 |
GroupCollection |
表示捕获组的集会 |
Match |
表示匹配单个正则表达式结果 |
MatchCollection |
表示通过迭代方式应用正则表达式到字符串中 |
Regex |
表示不可变的正则表达式 |
RegexCompilationInfo |
将编译正则表达式需要提供信息 |
[注意]本文属于初学正则表达式的入门文章,对于高级的分组(Group)及其涉及语法等在这里不做介绍
构造正则表达的方法
构造正则表达式需要涉及Regex类,在Regex类中包括:IsMatch()、Replace()、Split()和Match的类
(1) IsMatch()方法;
IsMatch()方法实际上是一个返回Bool值得方法,如果测试字符满足正则表达式返回True否则返回False;
1 static void Main(string[] args)
2 {
3 string str = Console.ReadLine();
4
5 string strRegex="^152\\d{8}$";
6
7 if (Regex.IsMatch(str, strRegex))
8 {
9 Console.WriteLine("格式正确:{0}", str);
10 }
11 else
12 {
13 Console.WriteLine("格式错误!");
14 }
15 Console.ReadKey();
16 }
(2) Replace()方法;
Replace()方法实际上是一种替换的方法,替换匹配正则表达式匹配模式;
1 string strRegex="\\w{1,}@\\w{1,}\\.\\w{1,}";
2
3 string str = Console.ReadLine();
4
5 if (Regex.IsMatch(str, strRegex))
6 {
7 Console.WriteLine(Regex.Replace(str, "@", "AT"));
8 }
9 else
10 {
11 Console.WriteLine("格式错误");
12 }
(3) Split()方法;
Split()方法实际上是拆分的方法,根据匹配正则表达式进行拆分储存在字符串数组中;
eg:群发电子邮件的时候使用
构建表达式基本方法
构造Regex对象的构造函数包括两个重载,一个是不含参数的构造、另外一个是含有参数的构造函数;
- 基本形式Regex(string
pattern);
- 重载形式Regex(string
pattern,RegexOptions);
补充:RegexOptions属于枚举类型,包括IgnoreCase(忽略大小写)、ReghtToLeft(从右向左)、None(默认)、CultureInvariant(忽略区域)、Multline(多行模式)和SingleLine(单行模式);