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

简介:

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, @"[-|;|,|\/|\(|\)|\[|\]|\}|\{|%|@|\*|!|\']");
        }
    }
}


















本文转自蓬莱仙羽51CTO博客,原文链接:http://blog.51cto.com/dingxiaowei/1366618,如需转载请自行联系原作者


相关文章
|
1月前
|
Java
38、Java 中的正则表达式(单字符匹配和预定义字符)
38、Java 中的正则表达式(单字符匹配和预定义字符)
18 0
|
数据安全/隐私保护
正则表达式--密码复杂度验证--必须包含大写、小写、数字、特殊字符中的至少三项
正则表达式--密码复杂度验证--必须包含大写、小写、数字、特殊字符中的至少三项
729 0
|
8月前
正则表达式中的字符详解
正则表达式中的字符详解
62 1
|
4月前
|
人工智能 JavaScript
js正则表达式new RegExp(表达式, “gi“)不区分大小写、忽略大小写匹配替换字符
js正则表达式new RegExp(表达式, “gi“)不区分大小写、忽略大小写匹配替换字符
|
5月前
|
Python
132 python高级 - 正则表达式(表示字符)
132 python高级 - 正则表达式(表示字符)
48 0
|
8月前
|
Shell
shell中正则表达式中字符的应用具体实例以及详解
shell中正则表达式中字符的应用具体实例以及详解
94 3
|
10月前
|
数据采集 Python
python|正则表达式-3:基本特殊字符含义
python|正则表达式-3:基本特殊字符含义
71 0
|
12月前
|
机器学习/深度学习 Shell C++
正则表达式普通字符、非打印字符、特殊字符、限定符的应用、定位符、元字符(规则,匹配,和实际使用)与运算符优先级
正则表达式普通字符、非打印字符、特殊字符、限定符的应用、定位符、元字符(规则,匹配,和实际使用)与运算符优先级
190 0
写几个正则表达式:只允许输入汉字、数字、字母、中英文小括号,并且10个字符以内|只允许输入汉字、数字、字母、英文小括号|电话号码正则表达式
写几个正则表达式:只允许输入汉字、数字、字母、中英文小括号,并且10个字符以内|只允许输入汉字、数字、字母、英文小括号|电话号码正则表达式
170 0

热门文章

最新文章