正则表达式:用来判断某一个字符是否匹配一定的格式。
注意点:各个语言的规则是通用的。
下面一些简单的例子来展示正则表达式的一些运用。
using System;
using System.Text.RegularExpressions;
class Program
{
public static void Main(string[] args)
{
//^:匹配一个字符串的开头
//$:匹配一个字符串的结尾
//[]:匹配一位字符,这一位字符可以是这个中括号中的任何一个
//[1-9] [A-Za-z1-9]:多种选择就这么写,注意不要带空格
//[1-9]:这一位字符可取的范围1-9
//[a-zA-Z]:这一位字符可取的范围:a-z和A-Z
//[^1-9]:这一位字符可以是1-9之外的任何字符
// +:前面的一位字符连续出现了1次或多次 Regex r = new Regex("^hel+lo$");就是对应+之前l出现的次数
// *: 前面的一位字符连续出现了0次或多次
// ?: 前面的一位字符连续出现了0次或1次
//{m}:前面的一位字符连续出现了m次
//{m,}:前面的一位字符至少连续出现了m次
//{m,n}:前面的一位字符出现了{m,n}次
//特殊符号,更多的可以百度去了解
// \d:[0-9]
// \D:[^0-9]
//写一个正则表达式去表示QQ规则:
//Regex r = new Regex("^[1-9]\\d{4,10}$")
//注意需要\\d是因为在字符串中表达转义字符多一个\,或者用@去表达转义字符
//.:通配符,可以匹配任意字符
//实例化一个正则表达式的对象
Regex r = new Regex("^hello$");
//如果不带^$,那么就是比较字符串中是否包含r,包含就是true,不包含就是false,都带着就是一一对应,
//一个一个的去比较,有一个对应不上就是false
bool result = r.IsMatch("hello world");//结果为false
Regex t = new Regex("^[abcdefgh]]ello world$");
bool res = t.IsMatch("hello world");
Console.WriteLine(result);
}
//1.判断一个手机号是否是合法的
public static bool CheckPhoneNumber(string number)
{
//正则
string patterns = "^1[34578]\\d{9}$";
//正则的两种判断方式
//①
//Regex r = new Regex(patterns);
//bool res = r.IsMatch(number);
//return res;
//②判断number这个字符是否匹配pattern
return Regex.IsMatch(number, patterns);
}
//2.判断一个邮箱是否是合法的
public static bool CheckEmail(string Email)
{
string pattern = "^[0-9a-zA-Z_\\.]+@[0-9a-zA-Z]+\\.com$";
return Regex.IsMatch(Email, pattern);
}
//3.替换字符串
//Lily lucy Uncle Wang Polly JimGreen
//替换成Lily,lucy,UncleWang,Polly,JimGreen
public static string Repace(string names)
{
string pattern = "{2,}";
return Regex.Replace(names, pattern, ",");
}
//4.屏蔽手机中间四位
public static string CheckPhone(string phone)
{
//18888888888=>188****8888
//分组:可以将一个字符串分成几部分
//():用来表示一个分组
string pattern = "^(1[34578]\\d)(\\d{4})(\\d{4})$";
//获取每一个分组的字符串
Match match = Regex.Match(phone, pattern);//获取到一个匹配的结果
GroupCollection groups = match.Groups;
string group1 = groups[1].Value;
string group2 = groups[2].Value;
string group3 = groups[3].Value;
return group1 + "****" + group3;
}
}