C#中简单的正则表达式
学习C#中简单的正则表达式
正则表达式:用来判断某个字符串是否匹配一定的格式
没有代码提示,就是一个字符串
实例:
//判断QQ号
//1、全是数字
//2、不能以0开头
//3、长度范围:[5,11]
using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
bool result2 = Regex.IsMatch("123456789", "^[1-9]\\d{4,10}$");
Console.WriteLine(result2);
}
}
using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main(string[] args)
{
// ^:匹配一个字符串的开头
// $:匹配一个字符串的结尾
// []:匹配一位字符,这一位字符可以是这个中括号中的任何一个
// [a-z]:匹配a-z]中任意一个字符
// [a-zA-Z1-9]:匹配a-z,A-Z,1-9中任意一个字符
// [^1-9]:表示这一位字符可以是[1-9]之外的任何字符
// +:前面的一位字符连续出现了一次或多次
// *:前面的一位字符连续出现了0次或多次
// ?:前面的一位字符连续出现了0次或1次
// {m}:前面的一位字符连续出现了m次
// {m,}:前面的一位字符至少连续出现了m次
// {m,n}:前面的一位字符出现了[m,n]次
// \d:[0-9]
// \D:[^0-9]
//由于\d或其他字母,在字符串中可能会被当作转义字符,所以要在前面再加一个\,也就是\\d,或在字符串开头加@,即@""
// . :通配符,可以匹配任意字符
//实例
bool result0 = CheckPhoneNumber("18888888888");
Console.WriteLine(result0);
bool result1 = CheckEmail("xc.luds@gmail.com");
Console.WriteLine(result1);
string result2 = FixNames("Lily Lucy Uncle Wang Polly JimGreen");
Console.WriteLine(result2);
string result3 = CheckPhone("15361130703");
Console.WriteLine(result3);
}
//1、判断一个手机号是否是合法
public static bool CheckPhoneNumber(string number)
{
//正则
string pattern = "^1[34578]\\d{9}$";
//判断是否匹配规则
return Regex.IsMatch(number, pattern);
}
//2、判断一个邮箱是否是合法的
public static bool CheckEmail(string Email)
{
string pattern = "^[0-9a-zA-Z_\\.]+@[0-9a-zA-Z]+\\.com$";
return Regex.IsMatch(Email, pattern);
}
//3、替换字符串
public static string FixNames(string names)
{
//将 Lily Lucy Uncle Wang Polly JimGreen
//替换为 Lily,Lucy,Uncle Wang,Polly,JimGreen
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;
}
}