前言
正则表达式的匹配模式由一系列数字、文字、运算符、字符等的字符组成,根据自己需求设计对应的模式,实现分析、匹配的操作。本文将对正则表达式组成语法进行讲解。
语法规则
正则表达式构建的匹配模式由转义字符、字符类、定位符、分组构造、限定符、反向引用构造、备用构造、替换、杂项构造等组成。
1、特殊字符:正则表达式中已经具有一定特殊意义的字符
字符 | 描述 |
---|---|
^ | 匹配输入字符串的开始位置 |
$ | 匹配输入字符串的结束位置 |
\ | 将特殊字符变为普通的字符;指定预定义字符集;定义断言 |
? | 匹配前面的字符零次或一次 |
+ | 匹配前面的字符一次或多次 |
* | 匹配前面的字符零次或多次 |
. | 匹配出换行符外的任意一个字符 |
- | 表示字符的匹配范围 |
| | 匹配以竖线字符分隔的任何一个字符 |
示例:
#region ^
// 模式 ^136
string pattern = @"^136";
Console.WriteLine(string.Format("字符串是否以136开头:{0}", Regex.IsMatch("1380000001", pattern)));
// 输出
字符串是否以136开头:false
#endregion
#region $
// 模式 $136
string pattern = @"$136";
Console.WriteLine(string.Format("字符串是否以136开头:{0}", Regex.IsMatch("13800010136", pattern)));
// 输出
字符串是否以136结束:true
#endregion
#region -
// 模式 ^[A-Za-z]+$
Regex regex = new Regex(@"^[A-Za-z]+$");
Console.WriteLine(string.Format("字符串是否全为英文字母:{0}",regex.IsMatch("Hello123")));
// 输出
字符串是否全为英文字母:false
#endregion
2、转义字符:将特殊字符变为普通的字符。下表列举了一些常用的转义字符: