C# 回顾正则表达式的常用语法
下面是常用的语法符号:
^:匹配一个字符串开头
$:匹配一个字符串结尾
[]: 匹配一位字符,这一位字符可以是中括号中的任何一位,例如[1235tgd]
[1-9]:这一位字符可取范围:1到9
[a-zA-Z]:这一位字符可以是:a到z或者A到Z
[^1-9]:这一位字符可以是1到9之外的任何字符
+:前面的一位字符连续出现了1次或多次
*:前面的一位字符连续出现了0次或多次
?:前面的一位字符连续出现了0次或1次
{m}:前面的一位字符连续出现m次
{m,}:前面的一位字符至少连续出现m次
{m,n}:前面的一位字符出现了m到n次
\d:[0-9]
\D:[^0-9]
.:通配符,可以匹配任何字符
代码例子:
//例子1,qq号;要求: //5-11位数 //第一位不能是0 //全数字 Regex rg = new Regex("^[1-9]\\d{4,10}$"); bool result = rg.IsMatch("523456"); Console.WriteLine(result); //例子2:判断手机号是否合法 Regex rePhone = new Regex("^1[34578]\\d{9}&"); //例子3:邮箱是否合法。有@和.com Regex reEmail = new Regex("^.+@.+\\.com$"); //.是通配符,需要加\转义,然后\在字符串需要加\转义,所以这里有2个\\ bool resultE = reEmail.IsMatch("29126356@qq.com"); Console.WriteLine(resultE); //例子3:将Parker chen luck mr chen替换成Parker chen,luck,mr chen 2个空格替换成逗号 Regex reRep = new Regex(" {2,}"); string resultRep = reRep.Replace("Parker chen luck mr chen", ","); Console.WriteLine("resultRep:" + resultRep); //例子4:将电话号码18888888888变成188****8888 //使用小括号,实现分组 Match match = Regex.Match("18888888888", "^(1[34578]\\d)(.{4})(.{4})$"); GroupCollection groups = match.Groups; string value1 = groups[1].Value; //从第一组,记住不是0 string value2 = groups[2].Value; string value3 = groups[3].Value; Console.WriteLine("value1:" + value1); Console.WriteLine("value2:" + value2); Console.WriteLine("value3:" + value3); Console.WriteLine("phone:" + value1+"****"+value3); //练习例子 Regex rgL = new Regex("^[abch]el*o Wor[a-z]$"); bool resultL = rg.IsMatch("helllo Work"); Console.WriteLine(resultL);
记得收藏并关注,掌握更多相关知识!!!