您的位置:首页 > 编程语言 > C#

C#正则表达式常见使用收集

2011-11-09 11:42 316 查看
   首先要导入:using System.Text.RegularExpressions;

     /// <summary>

    /// 固定电话的格式验证

    /// 1、形如(021-88888888)

    /// </summary>

    /// <param name="strTele">待验证字符串</param>

    /// <returns></returns>

    public bool IsTelephone(string str_tele)

    {

        string valExg = @"^(\d{3,4}-)?\d{6,8}$";//正则格式

        //string valExgMobile = @"^[1]\d{10}$";//手机号格式

        return  Regex.IsMatch(str_tele,valExg);

    }

  

    /// <summary>

    /// 密码格式验证

    /// 1、6-12位字符或数字组成

    /// </summary>

    /// <param name="str_password"></param>

    /// <returns></returns>

    public bool IsPassword(string str_password)

    {

        string valExg = @"^[A-Za-z0-9]{6,12}$";

        return Regex.IsMatch(str_password,valExg);

    }

    /// <summary>

    /// 身份证号验证

    /// 1、15位或18位

    /// </summary>

    /// <param name="str_idcard"></param>

    /// <returns></returns>

    public bool IsIDcard(string str_idcard)

    {

        string valExg=@"(^\d{18}$)|(^\d{15}$)";

        return Regex.IsMatch(str_idcard,valExg);

    }

   /// <summary>

    ///带有小数点格式验证

    /// </summary>

    /// <param name="str_decimal"></param>

    /// <returns></returns>

    public bool IsDecimal(string str_decimal)

    {

        string valExg = @"^[0-9]+\.[0-9]+$";

        return Regex.IsMatch(str_decimal, valExg);

    }

   /// <summary>

    /// 数值格式验证

    /// </summary>

    /// <param name="str_intNumber"></param>

    /// <returns></returns>

    public bool IsIntNumber(string str_intNumber)

    {

        string valExg = @"^[\+\-]?[1-9][0-9]*$";

        return Regex.IsMatch(str_intNumber, valExg);

    }

   /// <summary>

    /// 月份格式验证

    /// </summary>

    /// <param name="str_Month"></param>

    /// <returns></returns>

    public bool IsMonth(string str_Month)

    {

        string valExg = @"^(0?[[1-9]|1[0-2])$";

        return Regex.IsMatch(str_Month, valExg);

    }

     /// <summary>

    /// 日期格式验证

    /// </summary>

    /// <param name="str_day"></param>

    /// <returns></returns>

    public bool IsDay(string str_day)

    {

        string valExg = @"^((0?[1-9])|((1|2)[0-9])|30|31)$";

        return Regex.IsMatch(str_day, valExg);

    }

  

   /// <summary>

    ///检查字符串中重复出现的单词

    /// 1、此方法不是最完美的

    /// </summary>

    /// <param name="str_txt"></param>

    /// <returns></returns>

    public string SomeWord(string str_txt)

    {

        MatchCollection matches = Regex.Matches(str_txt, @"\b(?<word>\w+)[\s\w]+(\k<word>)\b", RegexOptions.Compiled | RegexOptions.IgnoreCase);

        if (matches.Count != 0)

        {

            StringBuilder sb = new StringBuilder();

            //遍历集合

            foreach (Match match in matches)

            {

                sb.Append(match.Groups["word"].Value+" ");//获取重复出现的单词

            }

            return "重复单词:" + sb.ToString() + "";

        }

        else

        {

            return "没有重复的单词";

        }

    }

    /// <summary>

    /// 根据数字进行拆分

    /// 1、实例:我1是中4国人->我 是中 国人

    /// </summary>

    /// <param name="str_txt"></param>

    /// <returns></returns>

    public string SplitText(string str_txt)

    {

        StringBuilder sb = new StringBuilder();

        string valExg = "[1-9]";//正则格式

        string[] p_str = Regex.Split(str_txt,valExg);

        foreach (string s in p_str)                                                //遍历拆分后的字符串集合

        {

            sb.Append(s+" ");                                            //显示字符串

        }

        return sb.ToString();

    }

  

   /// <summary>

    /// 检查是否为纯中文

    /// </summary>

    /// <param name="str_chinese"></param>

    /// <returns></returns>

    public bool IsChinese(string str_chinese)

    {

        string valExg = @"^[\u4e00-\u9fa5]{1,}$"; //中文

        //string valExg = @"^[A-Za-z]+$"; //英文

        return Regex.IsMatch(str_chinese, valExg);

    }

    /// <summary>

    /// 检查电子邮件格式

    /// 1、jayfery@126.com

    /// </summary>

    /// <param name="str_Email"></param>

    /// <returns></returns>

    public bool IsEmail(string str_Email)

    {

        string valExg = @"^(([\w\.]+)@(([[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}))|((\w+\.?)+)@([a-zA-Z]{2,4}|[0-9]{1,3})(\.[a-zA-Z]{2,4}))$";

        return Regex.IsMatch(str_Email, valExg);

    }

   /// <summary>

    /// 检查IP地址格式

   /// 127.0.0.1

    /// </summary>

    /// <param name="IP"></param>

    /// <returns></returns>

    public bool IPCheck(string IP)

    {

        string num = @"(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)";                        //创建正则表达式字符串

        return Regex.IsMatch(IP,("^" + num + "\\." + num + "\\." + num + "\\." + num + "$"));//使用正则表达式判断是否匹配

    }

   /// <summary>

    /// 检查URL地址格式

    /// 1、http://www.baidu.com

    /// </summary>

    /// <param name="str_url"></param>

    /// <returns></returns>

    public bool IsUrl(string str_url)

    {

        string valExg = @"http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?";

        return Regex.IsMatch(str_url, valExg);

    }

  待续 2011-11-14.。。。。

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