正则表达式,又称正规表示法、常规表示法(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。
许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开的。正则表达式通常缩写成“regex”,单数有regexp、regex,复数有regexps、regexes、regexen。
使用正则表达式需要引入命名空间 using System.Text.RegularExpressions;
1.基本的语法字符
/d 0-9的数字
/D /d的补集(以所以字符为全集,下同),即所有非数字的字符
/w 单词字符,指大小写字母、0-9的数字、下划线
/W /w的补集
/s 空白字符,包括换行符/n、回车符/r、制表符/t、垂直制表符/v、换页符/f
/S /s的补集
. 除换行符/n外的任意字符
[…] 匹配[]内所列出的所有字符
[^…] 匹配非[]内所列出的字符
eg1:
<span style="white-space:pre"> </span> string a = "%";
string b = "3";
Regex r = new Regex("[a-z0-9]");
Console.WriteLine(r.IsMatch(a));//结果:False
Console.WriteLine(r.IsMatch(b));//结果:True
2.定位字符
“定位字符”所代表的是一个虚的字符,它代表一个位置,也可以直观地认为“定位字符”所代表的是某个字符与字符间的那个微小间隙。
^ 表示其后的字符必须位于字符串的开始处
$ 表示其前面的字符必须位于字符串的结束处
/b 匹配一个单词的边界
/B 匹配一个非单词的边界
/A 前面的字符必须位于字符处的开始处
/z 前面的字符必须位于字符串的结束处
/Z 前面的字符必须位于字符串的结束处,或者位于换行符前
eg2:
<span style="white-space:pre"> </span> string word = "you are the only thing I wanna touch";
Regex r1 = new Regex("^you are the only thing I wanna touch$");
Console.WriteLine(r1.IsMatch(word));//结果:True
Regex r2 = new Regex("^you are the only thing I wanna$");
Console.WriteLine(r2.IsMatch(word));//结果:False
Regex r3 = new Regex("^you are the only thing I wanna");
Console.WriteLine(r3.IsMatch(word));//结果:True
/b通常用于约束一个完整的单词