欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-04-15 09:34:55
废话不多说了,下面代码给大家介绍下利用正则表达式判断字符的方法,具体代码如下所示: using system; using system.text.regula...

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

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#中如何利用正则表达式判断字符,希望对大家有所帮助