您的位置:首页 > 其它

利用正则表达式 进行字符的判断

2013-02-05 14:51 411 查看
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, @"[-|;|,|\/|\(|\)|\[|\]|\}|\{|%|@|\*|!|\']");

        }

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: