zoukankan      html  css  js  c++  java
  • C#使用正则表达式的类(原创)

    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Text.RegularExpressions;
    using System.Collections;

    namespace zdHelper
    {
        
    static public class zdRegexpHelper
        
    {

            
    /// <summary>
           
    /// 是否符合指定的正则表达式
            
    /// </summary>
            
    /// <param name="str"></param>
            
    /// <returns></returns>

            static public bool Validate(string str, RegexpType type)
            
    {
                Regex regex 
    = new Regex(regexStrs[(int)type].ToString());
                Match match 
    = regex.Match(str);
                
    if (match.Success)
                    
    return true;
                
    else
                    
    return false;
            }


           
    ///是否符合指定的正则表达式
            static public bool Validate(string str, string regexStr)
            
    {
                Regex regex 
    = new Regex(regexStr);
                Match match 
    = regex.Match(str);
                
    if (match.Success)
                    
    return true;
                
    else
                    
    return false;
            }


            
    /// <summary>
            
    /// 是否全部符合指定的正则表达式
            
    /// </summary>
            
    /// <param name="str"></param>
            
    /// <returns></returns>

            static public bool AllValidate(string str, RegexpType type)
            
    {
                Regex regex 
    = new Regex("^" + regexStrs[(int)type].ToString() + "$");
                Match match 
    = regex.Match(str);
                
    if (match.Success)
                    
    return true;
                
    else
                    
    return false;
            }

            
    /// <summary>
            
    /// 是否全部符合指定的正则表达式
            
    /// </summary>
            
    /// <param name="str"></param>
            
    /// <returns></returns>

            static public bool AllValidate(string str, string regexStr)
            
    {
                Regex regex 
    = new Regex(regexStr);
                Match match 
    = regex.Match(str);
                
    if (match.Success)
                    
    return true;
                
    else
                    
    return false;
            }


            
    /// <summary>
            
    /// 返回符合的部分
            
    /// </summary>
            
    /// <param name="str"></param>
            
    /// <returns></returns>

            static public ArrayList GetValidatedStr(string str, RegexpType type)
            
    {
                ArrayList array 
    = new ArrayList();
                Regex regex 
    = new Regex(regexStrs[(int)type].ToString());
                Match match 
    = regex.Match(str);

                
    while (match.Success)
                
    {
                    array.Add(match.Value.ToString());
                    match
    = match.NextMatch();
                }

                
    return array;
            }


            
    /// <summary>
            
    /// 返回符合的部分
            
    /// </summary>
            
    /// <param name="str"></param>
            
    /// <returns></returns>

            static public ArrayList GetValidatedStr(string str, string regexStr)
            
    {
                ArrayList array 
    = new ArrayList();
                Regex regex 
    = new Regex(regexStr.ToString());
                Match match 
    = regex.Match(str);

                
    while (match.Success)
                
    {
                    array.Add(match.Value.ToString());
                    match 
    = match.NextMatch();
                }

                
    return array;
            }


            
    ///用replaceStr代替str中指定的正则表达式匹配的部分
            static public string ReplaceStrUseRegex(string str, RegexpType type,string replaceStr)
            
    {
                
    string replacedStr=Regex.Replace(str, regexStrs[(int)type].ToString(), replaceStr);
                
    return replacedStr;
            }


            
    ///用replaceStr代替str中指定的正则表达式匹配的部分
            static public string ReplaceStrUseRegex(string str, string regexStr,string replaceStr)
            
    {
                
    string replacedStr=Regex.Replace(str, regexStr.ToString(), replaceStr);
                
    return replacedStr;
            }

            
    static string[] regexStrs = new string[] { "[0-9]*”"/d{1,}""/+?[1-9][0-9]*""/-[1-9][0-9]*""[A-Za-z]+""[A-Za-z0-9]+""/w+""[a-zA-Z]/w{5,17}""[^%&',;=?$"]+""[//u4e00-//u9fa5]{1,}","/w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*","http://([/w-]+/.)+[/w-]+(/[/w-./?%&=]*)?","(/(/d{3,4}-)|/d{3.4}-)?/d{7,8}" ,"[1-9]([0-9]{16}|[0-9]{13})[xX0-9]"};
        }



    ///默认的一些正则表达式类型
        public enum RegexpType
        
    {
            onlyOneToNine,
    //仅从1到9
            num,//数字
            positiveInt,//正整数
            minusInt,//副整数
            letter,//字母
            intOrLetter,//整数或字母
            intOrLetterOrUnderline,//整数或字母或下划线
            possword,//密码,整数或字母或下划线,字母开头,6到18位
            especialSign,//特殊符号
            Chinese,//汉字
            Email,//不用说啦
            InternetURL,//网址
            phone,//也不用说啦
            identityCard,//身份证
        }

    }

    使用的方法是:
    string str="1238974" ;

    bool a=zdRegexpHelper.Validate(str, RegexpType.num);

     ArrayList b 
    = zdRegexpHelper.GetValidatedStr(str, RegexpType.num);

    //或者

    bool a=zdRegexpHelper.Validate(str, “[0-9]*“);

     ArrayList b 
    = zdRegexpHelper.GetValidatedStr(str, “[0-9]*“);
    要添加一些自己常用的正则表达式的话:
         static string[] regexStrs = new string[] "[0-9]*""/d{1,}""/+?[1-9][0-9]*""/-[1-9][0-9]*""[A-Za-z]+""[A-Za-z0-9]+""/w+""[a-zA-Z]/w{5,17}""[^%&',;=?$"]+""[/u4e00-/u9fa5]{1,}","/w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*","http://([/w-]+/.)+[/w-]+(/[/w-./?%&=]*)?","(/(/d{3,4}-)|/d{3.4}-)?/d{7,8}" ,"[1-9]([0-9]{16}|[0-9]{13})[xX0-9]",str};//str是你需要的正则表达式

        
    public enum RegexpType
        
    {
            onlyOneToNine,
            num,
            positiveInt,
            minusInt,
            letter,
            intOrLetter,
            intOrLetterOrUnderline,
            possword,
            especialSign,
            Chinese,
            Email,
            InternetURL,
            phone,
            identityCard,
           name,
    //是你给的名字
        }
    注意:
    委托RegexpType中的
    onlyOneToNine 关联的是regexStrs [0];
    name是要和regexStrs 相关联。
    一般要就在最加就可以了。

  • 相关阅读:
    XXX is not in the sudoers file
    git错误“无法推送一些引用到xxx"的解决方法
    mysql开启远程访问
    ubuntu 在启动器中启动webstorm和phpstorm
    ubuntu nginx卸载和安装
    基于grunt构建的前端集成开发环境
    fullPage.js
    常见的HTTP状态码
    JS随机数
    CSS3简单的动画
  • 原文地址:https://www.cnblogs.com/tangself/p/2469280.html
Copyright © 2011-2022 走看看