C#中几个正则表达式匹配输入字符的函数

    以下几个函数主要是利用正则表达式格式化用户输入的不当数据

public   static   int  ParseInt32( string  value)
{
    
if  ( string .IsNullOrEmpty(value.Trim()))
        
return   0 ;
    
else
    {
        
return   int .Parse(value);  
    }
}

public   static   float  ParseFloat( string  value)
{
    
if  ( string .IsNullOrEmpty(value.Trim()))
        
return  0f;
    
else
    {
        
return   float .Parse(value);
    }
}

///   <summary>
///  功能:将字符转换为单精度型,正则表达式匹配速度比较慢,慎用。
///  建议在外部输入的数据(可能是不安全的数据)时使用
///  作者:胡进平
///  日期:2008-9-12
///   </summary>
///   <param name="value"> 要转换的字符 </param>
///   <param name="isStrict"> 是否需要严格判断 </param>
///   <returns></returns>
public   static   float  ParseFloat( string  value, bool  isStrict)
{
    
if  ( ! isStrict)  return  ParseFloat(value);

    
if  ( string .IsNullOrEmpty(value.Trim()))
        
return  0f;
    
else
    {
        Regex rx 
=   new  Regex( @" (-?\d+\.\d*)|(-?\d+) " , RegexOptions.Compiled  |  RegexOptions.IgnoreCase);
        
if  (rx.IsMatch(value))
        {
            MatchCollection matches 
=  rx.Matches(value);
            
return  Convert.ToSingle(matches[ 0 ].Value);
        }
        
return  0f;
    }
}

///   <summary>
///  功能:将字符转换为整型,正则表达式匹配速度比较慢,慎用
///  建议在外部输入的数据(可能是不安全的数据)时使用
///  作者:胡进平
///  日期:2008-9-12
///   </summary>
///   <param name="value"> 要转换的字符 </param>
///   <param name="isStrict"> 是否需要严格判断 </param>
///   <returns></returns>
public   static   int  ParseInt32( string  value, bool  isStrict)
{
    
if  ( ! isStrict)  return  ParseInt32(value);

    
if  ( string .IsNullOrEmpty(value.Trim()))
        
return   0 ;
    
else
    {
        Regex rx 
=   new  Regex( @" -?\d+\.\d* " , RegexOptions.Compiled  |  RegexOptions.IgnoreCase);
        
if  (rx.IsMatch(value))
        {
            MatchCollection matches 
=  rx.Matches(value);
            
string  prefix  =  matches[ 0 ].Value.Split( ' . ' )[ 0 ];
            
return  Convert.ToInt32(prefix);
        }
        rx 
=   new  Regex( @" -?\d+ " , RegexOptions.Compiled  |  RegexOptions.IgnoreCase);
        
if  (rx.IsMatch(value))
        {
            MatchCollection matches 
=  rx.Matches(value);
            
return  Convert.ToInt32(matches[ 0 ].Value);
        }
        
return   0 ;
    }
}
///   <summary>
///  功能:将字符转换为双精度型
///  作者:胡进平
///  日期:2008-9-12
///   </summary>
///   <param name="value"></param>
///   <returns></returns>
public   static   double  ParseDobule( string  value)
{
    
if  ( string .IsNullOrEmpty(value.Trim()))
        
return   0 ;
    
else
    {
        Regex rx 
=   new  Regex( @" (-?\d+\.\d*)|(-?\d+) " , RegexOptions.Compiled  |  RegexOptions.IgnoreCase);
        
if  (rx.IsMatch(value))
        {
            MatchCollection matches 
=  rx.Matches(value);
            
return  Convert.ToDouble(matches[ 0 ].Value);
        }
        
return   0 ;
    }
}
public   static   int  ParseInt32( string  value)
{
    
if  ( string .IsNullOrEmpty(value.Trim()))
        
return   0 ;
    
else
    {
        
return   int .Parse(value);  
    }
}

public   static   float  ParseFloat( string  value)
{
    
if  ( string .IsNullOrEmpty(value.Trim()))
        
return  0f;
    
else
    {
        
return   float .Parse(value);
    }
}

///   <summary>
///  功能:将字符转换为单精度型,正则表达式匹配速度比较慢,慎用。
///  建议在外部输入的数据(可能是不安全的数据)时使用
///  作者:胡进平
///  日期:2008-9-12
///   </summary>
///   <param name="value"> 要转换的字符 </param>
///   <param name="isStrict"> 是否需要严格判断 </param>
///   <returns></returns>
public   static   float  ParseFloat( string  value, bool  isStrict)
{
    
if  ( ! isStrict)  return  ParseFloat(value);

    
if  ( string .IsNullOrEmpty(value.Trim()))
        
return  0f;
    
else
    {
        Regex rx 
=   new  Regex( @" (-?\d+\.\d*)|(-?\d+) " , RegexOptions.Compiled  |  RegexOptions.IgnoreCase);
        
if  (rx.IsMatch(value))
        {
            MatchCollection matches 
=  rx.Matches(value);
            
return  Convert.ToSingle(matches[ 0 ].Value);
        }
        
return  0f;
    }
}

///   <summary>
///  功能:将字符转换为整型,正则表达式匹配速度比较慢,慎用
///  建议在外部输入的数据(可能是不安全的数据)时使用
///  作者:胡进平
///  日期:2008-9-12
///   </summary>
///   <param name="value"> 要转换的字符 </param>
///   <param name="isStrict"> 是否需要严格判断 </param>
///   <returns></returns>
public   static   int  ParseInt32( string  value, bool  isStrict)
{
    
if  ( ! isStrict)  return  ParseInt32(value);

    
if  ( string .IsNullOrEmpty(value.Trim()))
        
return   0 ;
    
else
    {
        Regex rx 
=   new  Regex( @" -?\d+\.\d* " , RegexOptions.Compiled  |  RegexOptions.IgnoreCase);
        
if  (rx.IsMatch(value))
        {
            MatchCollection matches 
=  rx.Matches(value);
            
string  prefix  =  matches[ 0 ].Value.Split( ' . ' )[ 0 ];
            
return  Convert.ToInt32(prefix);
        }
        rx 
=   new  Regex( @" -?\d+ " , RegexOptions.Compiled  |  RegexOptions.IgnoreCase);
        
if  (rx.IsMatch(value))
        {
            MatchCollection matches 
=  rx.Matches(value);
            
return  Convert.ToInt32(matches[ 0 ].Value);
        }
        
return   0 ;
    }
}
///   <summary>
///  功能:将字符转换为双精度型
///  作者:胡进平
///  日期:2008-9-12
///   </summary>
///   <param name="value"></param>
///   <returns></returns>
public   static   double  ParseDobule( string  value)
{
    
if  ( string .IsNullOrEmpty(value.Trim()))
        
return   0 ;
    
else
    {
        Regex rx 
=   new  Regex( @" (-?\d+\.\d*)|(-?\d+) " , RegexOptions.Compiled  |  RegexOptions.IgnoreCase);
        
if  (rx.IsMatch(value))
        {
            MatchCollection matches 
=  rx.Matches(value);
            
return  Convert.ToDouble(matches[ 0 ].Value);
        }
        
return   0 ;
    }
}

你可能感兴趣的:(正则表达式)