首页 > 编程 > C# > 正文

C#中如何利用正则表达式判断字符

2020-01-24 00:53:11
字体:
来源:转载
供稿:网友

废话不多说了,下面代码给大家介绍下利用正则表达式判断字符的方法,具体代码如下所示:

using System;using System.Text.RegularExpressions;using System.NET;namespace 正则表达式检测字符串{ class Program {  static void Main(string[] args)  {   Console.WriteLine("请输入字符串:");   string s = Console.ReadLine();   if (GF_IsOk.IsExistHanZi(s))   {    Console.Write("包含汉字");   }   else   {    Console.Write("不包含汉字");   }   Console.ReadLine();  } } //判断部分 public class GF_IsOk {  /// <summary>  /// 判读是否是IP地址  /// </summary>  /// <param name="in_str"></param>  /// <returns></returns>  public static bool IsIPStr(string in_str)  {   IPAddress ip;   return IPAddress.TryParse(in_str, out ip);  }  /// <summary>  /// 判断是否是数字  /// </summary>  /// <param name="strNumber"></param>  /// <returns></returns>  public static bool IsNumber(string strNumber)  {   Regex objNotNumberPattern = new Regex("[^0-9.-]");   Regex objTwoDotPattern = new Regex("[0-9]*[.][0-9]*[.][0-9]*");   Regex objTwoMinusPattern = new Regex("[0-9]*[-][0-9]*[-][0-9]*");   String strValidRealPattern = "^([-]|[.]|[-.]|[0-9])[0-9]*[.]*[0-9]+$";   String strValidIntegerPattern = "^([-]|[0-9])[0-9]*$";   Regex objNumberPattern = new Regex("(" + strValidRealPattern + ")|(" + strValidIntegerPattern + ")");   return !objNotNumberPattern.IsMatch(strNumber) &&     !objTwoDotPattern.IsMatch(strNumber) &&     !objTwoMinusPattern.IsMatch(strNumber) &&     objNumberPattern.IsMatch(strNumber);  }  /// <summary>  /// 判断是否是日期字符串  /// </summary>  /// <param name="in_str"></param>  /// <returns></returns>  public static bool IsDateStr_yyyymmdd(string in_str)  {   if (in_str == "") return true;   if (in_str.Length != 8) return false;   return IsDateStr(in_str);  }  /// <summary>  /// 判断是否是日期字符串  /// </summary>  /// <param name="in_str"></param>  /// <returns></returns>  public static bool IsDateStr(string in_str)  {   if (in_str == "") return true;   if (in_str.Length == 8)    in_str = in_str.Substring(0, 4) + "-" + in_str.Substring(4, 2) + "-" + in_str.Substring(6, 2);   DateTime dtDate;   bool bValid = true;   try   {    dtDate = DateTime.Parse(in_str);   }   catch (FormatException)   {    // 如果解析方法失败则表示不是日期性数据    bValid = false;   }   return bValid;  }  /// <summary>  /// 判断字符串中是否包含汉字,有返回true 否则为false  /// </summary>  /// <param name="str"></param>  /// <returns></returns>  public static bool IsExistHanZi(string str)  {   Regex reg = new Regex(@"[/u4e00-/u9fa5]");//正则表达式   if (reg.IsMatch(str))   {    return true;   }   else   {    return false;   }  }  /// <summary>  /// 字段串是否为Null或为""(空)  /// </summary>  /// <param name="str"></param>  /// <returns></returns>  public static bool IsStrNullOrEmpty(string str)  {   if (str == null || str.Trim() == string.Empty)    return true;   return false;  }  /// <summary>  /// 返回文件是否存在  /// </summary>  /// <param name="filename">文件名</param>  /// <returns>是否存在</returns>  public static bool IsFileExists(string filename)  {   return System.IO.File.Exists(filename);  }  /// <summary>  /// 检测是否符合email格式  /// </summary>  /// <param name="strEmail">要判断的email字符串</param>  /// <returns>判断结果</returns>  public static bool IsValidEmail(string strEmail)  {   return Regex.IsMatch(strEmail, @"^[/w/.]+([-]/w+)*@[A-Za-z0-9-_]+[/.][A-Za-z0-9-_]");  }  public static bool IsValidDoEmail(string strEmail)  {   return Regex.IsMatch(strEmail, @"^@(([0−9]1,3/.[0−9]1,3/.[0−9]1,3/.)|(([/w−]+/.)+))([a−zA−Z]2,4|[0−9]1,3)(?)$");  }  /// <summary>  /// 检测是否是正确的Url  /// </summary>  /// <param name="strUrl">要验证的Url</param>  /// <returns>判断结果</returns>  public static bool IsURL(string strUrl)  {   return Regex.IsMatch(strUrl, @"^(http|https)/://([a-zA-Z0-9/./-]+(/:[a-zA-Z0-9/.&%/$/-]+)*@)*((25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])/.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)/.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)/.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])|localhost|([a-zA-Z0-9/-]+/.)*[a-zA-Z0-9/-]+/.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{1,10}))(/:[0-9]+)*(/($|[a-zA-Z0-9/./,/?/'///+&%/$#/=~_/-]+))*$");  }   /// <summary>  /// 判断是否为base64字符串  /// </summary>  /// <param name="str"></param>  /// <returns></returns>  public static bool IsBase64String(string str)  {   //A-Z, a-z, 0-9, +, /, =   return Regex.IsMatch(str, @"[A-Za-z0-9/+///=]");  }  /// <summary>  /// 检测是否有Sql危险字符  /// </summary>  /// <param name="str">要判断字符串</param>  /// <returns>判断结果</returns>  public static bool IsSafeSqlString(string str)  {   return !Regex.IsMatch(str, @"[-|;|,|//|||||/}|/{|%|@|/*|!|/']");  } }}

以上所述是小编给大家介绍的C#中如何利用正则表达式判断字符,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对武林网网站的支持!

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表