正则表达式元字符:
.表示除了\n之外的任意的单个字符
[]字符组,任意的单个字符,中括号中的任意一个字符
[0-9],[a-z],[A-Z]
|表示或的意思,或的优先级比较低,最后再计算
()改变优先级,提取组(分组)
{n}前面表达式必须出现n次
{n,}表示前面的表达式至少出现n次,最多不限。
{n,m}至少出现n次,最多出现m次
*表示出现0次或多次{0,}
+表示出现1次或多次{1,}
?表示0次或1次{0,1} 另外的一个意思是:终止贪婪模式
-----------------------^与$--------------------------------------------
^表示字符串的开始 另外的一个意思是非的意思,出现再[]内例如[^0-9]
$表示字符串的结束
简写的表达式:
a[0-9]b==a\db
\d表示[0-9]
\D表示[^0-9]
\s表示所有空白符,代表换行符
\S表示\s的反面,非空白字符
\w [a-zA-Z0-9]
\W表示反面
\b单词的边界
忽略掉所有的元字符,类似与c#中的@符号
string s=Regex.Escape(@"\d{5,7}");
static void Main(string[] args)
{
//取巧的办法:从asp.net的RegularExpressionValidator中抄常用的正则表达式
while (true)
{
#region 案例1
//Console.WriteLine("请输入邮政编码");
//string postcode = Console.ReadLine();
表示只要整个字符串中有任何一部分可以匹配,该字符串就会返回true
bool f= Regex.IsMatch(postcode, "^[0-9]{6}$");
//bool f = Regex.IsMatch(postcode, @"^\d{6}$");
//Console.WriteLine(f);
#endregion
#region 案例2
// Console.WriteLine("请输入一个身份证号码:");
// string s = Console.ReadLine();
// bool b=Regex.IsMatch(s, @"^([^0]\d{14}|[^0]\d{16}[0-9xX])$");
// Console.WriteLine(b);
#endregion
#region 案例3
Console.WriteLine("请输入一个邮箱:");
string s = Console.ReadLine();
bool b = Regex.IsMatch(s, @"^[0-9a-zA-Z_.\-]+@[a-zA-Z0-9\-]+(\.[a-zA-Z]+){1,2}$");
Console.WriteLine(b);
#endregion
}