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

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

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#中如何利用正则表达式判断字符,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • C#中常用的正则表达式实例

    目前为止,许多编程语言和工具都包含对正则表达式的支持,C#也不例外,C#基础类库中包含有一个命名空间(System.Text.RegularExpressions)和一系列可以充分发挥规则表达式威力的类(Regex.Match.Group等).那么,什么是正则表达式,怎么定义正则表达式呢? 正则表达式基础  什么是正则表达式 在编写字符串的处理程序时,经常会有查找符合某些复杂规则的字符串的需要.正则表达式就是用于描述这些规则的工具.换句话说,正则表达式就是记录文本规则的代码.     通常,我们

  • C#使用正则表达式抓取网站信息示例

    本文实例讲述了C#使用正则表达式抓取网站信息的方法.分享给大家供大家参考,具体如下: 这里以抓取京东商城商品详情为例. 1.创建JdRobber.cs程序类 public class JdRobber { /// <summary> /// 判断是否京东链接 /// </summary> /// <param name="param"></param> /// <returns></returns> public

  • C#基于正则表达式抓取a标签链接和innerhtml的方法

    本文实例讲述了C#基于正则表达式抓取a标签链接和innerhtml的方法.分享给大家供大家参考,具体如下: //读取网页html string text = File.ReadAllText(Environment.CurrentDirectory + "//test.txt", Encoding.GetEncoding("gb2312")); string prttern = "<a(\\s+(href=\"(?<url>([

  • 学习正则表达式(js、C#)

    js中的正则表达式使用 function myValid() { var errorMsg = ""; var res = true; //拿到要验证的值. var receiveName = $("#receiveName").val();//姓名 var receiveMobile = $("#tMobile").val();//手机号 var validCode = $("#validCode").val();//验证码

  • 谈谈C# replace在正则表达式中的意义

    多少年来,许多的编程语言和工具都包含对正则表达式的支持,.NET基础类库中包含有一个名字空间和一系列可以充分发挥规则表达式威力的类,而且它们也都与未来的Perl 5中的规则表达式兼容. 此外,regexp类还能够完成一些其他的功能,例如从右至左的结合模式和表达式的编辑等. 在这篇文章中,我将简要地介绍System.Text.RegularExPRession中的类和方法.一些字符串匹配和替换的例子以及组结构的详细情况,最后,还会介绍一些你可能会用到的常见的表达式. 应该掌握的基础知识 规则表达式

  • C#基于正则表达式删除字符串中数字或非数字的方法

    本文实例讲述了C#基于正则表达式删除字符串中数字或非数字的方法.分享给大家供大家参考,具体如下: /// 去掉字符串中的数字 public static string RemoveNumber(string key) { return Regex.Replace(key, @"\d", ""); } //去掉字符串中的非数字 public static string RemoveNotNumber(string key) { return Regex.Replace

  • 常用C#正则表达式汇总介绍

    有一段时间,正则表达式学习很火热很潮流,当时在CSDN一天就能看到好几个正则表达式的帖子,那段时间借助论坛以及Wrox Press出版的<C#字符串和正则表达式参考手册>学习了一些基础的知识,同时也为我在CSDN大概赚了1000分,今天想起来,去找<C#字符串和正则表达式参考手册>时,已经不知所踪了.现在用到正则的时候也比较少,把以前的笔记等整理一下,以志不忘. (1)"@"符号 符下两ows表研究室的火热,当晨在"@"虽然并非C#正则表达式

  • C#正则表达式匹配与替换字符串功能示例

    本文实例讲述了C#正则表达式匹配与替换字符串功能.分享给大家供大家参考,具体如下: 事例一:\w+=>[A-Za-z1-9_],\s+=>任何空白字符,()=>捕获 string text = @"public string testMatchObj string s string match "; string pat = @"(\w+)\s+(string)"; // Compile the regular expression. Regex

  • C#中正则表达式的3种匹配模式

    在C#中,我们一般使用Regex类来表示一个正则表达式.一般正则表达式引擎支持以下3种匹配模式:单行模式(Singleline).多行模式(Multiline)与忽略大小写(IgnoreCase). 1. 单行模式(Singleline) MSDN定义:更改点 (.) 的含义,使它与每一个字符匹配(而不是与除 \n 之外的每个字符匹配). 使用单行模式的典型场景是获取网页源码中的信息. 示例: 我们使用WebBrowser控件,从http://www.xxx.com/1.htm上获取了如下HTM

  • C#基于正则表达式实现获取网页中所有信息的网页抓取类实例

    本文实例讲述了C#基于正则表达式实现获取网页中所有信息的网页抓取类.分享给大家供大家参考,具体如下: 类的代码: using System; using System.Data; using System.Configuration; using System.Net; using System.IO; using System.Text; using System.Collections.Generic; using System.Text.RegularExpressions; using

随机推荐