正则表达式
正则表达式是对字符串进行操作,主要用于处理一些复杂的字符串操作。比如在一个交友网站上有很多东西,要求把其中的邮箱都筛选出来整理到一个文本文档中,这时候用正则表达式就方便的多。正则表达式用来描述字符串的特征,根据字符串的特征来找到对应的字符串。
元字符
元字符是正则表达式的前提。
1、“.”除\n以外的任意的单个字符
a.b表示:aab,axb,a3b,ab之间必须有且只有一个字符。
2、“[]”字符组
a[xyz]b表示:axb,ayb,azb
字符组中罗列出来的字符任意取单个字符
a[a-z]b
a[a-ZA-Z]b
当“-”出现在第一个的时候不表示连字符,只表示一个字符。
3、“|”表示或的意思
a(x|y)b,ab之间是x或者y
z|food表示匹配z或者food
(z|f)ood表示匹配zood或者food
4、“()”表示改变优先级或者表示提取组
5、“*”
a.*b,表示.可以出现0次或者多次
ab
axb
ayyyb
6、“+”表示一次或多次,至少得出现一次。
7、“?”表示可出现0次或者1次。?的另外一个是终止贪婪模式
8、“{n}”表示出现的次数
(1)限定固定长度
[0-9]{8}
数字0-9出现8次
(2)限定最少出现次数
[0-9]{4,}
至少出现4次
(3)限定最少最多的范围
[0-9]{4,9}
9、“^”表示字符串一行的开始
以h开头后面一个字符
10、“$”表示字符串以特定字符结束
11、当“^”出现在字符组[]中必须在开头
a[^zxy]b
除了zxy后其他任意单个字符都可以。
简写表达式
\d:代表一个数字,等同于[0-9]
\D:代表非数字,等同于[^0-9]
\s:代表换行符、Tab制表符等空白字符(空格,回车,制表符)
\S:代表非空白字符
\w:匹配字母或数字或下划线或汉字,即能组成单词的字符
\W:匹配非\w
\b:一边是单词一边不是单词
正则表达式在C#中的应用
Regex.IsMatch();用来判定给定的字符串是否匹配某个正则表达式
Regex.Match();用来从给定的字符串中按照正则表达式的要求提取【一个】匹配的 字符串
Regex.Matches();用来从给定的字符串中按照正则表达式的要求提取【所有】匹配的 字符串
Regex.Replace();替换所有正则表达式匹配的字符串为另外一个字符串
请用户输入0-9的数字
<span style="font-family:Microsoft YaHei;font-size:18px;">while (true)
{
bool b = Regex.IsMatch(Console.ReadLine(), "^[0-9]{3}$");
Console.WriteLine(b);
}</span>