C#正则表达式的简单用法

using System; 
using System.Text.RegularExpressions; 
namespace bobomousecom.crm 

/// <summary> 
/// Regexlib 的摘要说明。 
/// </summary> 
public class Regexlib 

public Regexlib() 

  // 
  // TODO: 在此处添加构造函数逻辑 
  // 


//搜索输入字符串并返回所有 href=“...”值 
string DumpHrefs(String inputString) 

  Regex r; 
  Match m; 
  r = new Regex("href\\s*=\\s*(?:\"(?<1>[^\"]*)\"|(?<1>\\S+))", 
  RegexOptions.IgnoreCase|RegexOptions.Compiled); 
  for (m = r.Match(inputString); m.Success; m = m.NextMatch()) 
  { 
  return("Found href " + m.Groups[1]); 
  } 


//验证Email地址 
bool IsValidEmail(string strIn) 

  // Return true if strIn is in valid e-mail format. 
  return Regex.IsMatch(strIn, @"^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$"); 


//dd-mm-yy 的日期形式代替 mm/dd/yy 的日期形式。 
string MDYToDMY(String input) 

  return Regex.Replace(input,"\\b(?\\d{1,2})/(?\\d{1,2})/(?\\d{2,4})\\b","${day}-${month}-${year}"); 


//验证是否为小数 
bool IsValidDecimal(string strIn) 

  
  return Regex.IsMatch(strIn,@"[0].\d{1,2}|[1]"); 

//验证两位小数 
  public bool IsDecimal(string str_decimal)
  {
  return System.Text.RegularExpressions.Regex.IsMatch(str_decimal, @"^[0-9]+(.[0-9]{2})?$");
  }

//验证一年的12个月 
  public bool IsMonth(string str_Month)
  {
  return System.Text.RegularExpressions.Regex.IsMatch(str_Month, @"^(0?[[1-9]|1[0-2])$");
  }

 

//验证一个月的31天

  public bool IsDay(string str_day)
  {
  return System.Text.RegularExpressions.Regex.IsMatch(str_day, @"^((0?[1-9])|((1|2)[0-9])|30|31)$");
  }


//验证是否为电话号码 
bool IsValidTel(string strIn) 

  return Regex.IsMatch(strIn,@"(\d+-)?(\d{4}-?\d{7}|\d{3}-?\d{8}|^\d{7,8})(-\d+)?"); 


//验证年月日 
bool IsValidDate(string strIn) 

  return Regex.IsMatch(strIn,@"^2\d{3}-(?:0?[1-9]|1[0-2])-(?:0?[1-9]|[1-2]\d|3[0-1])(?:0?[1-9]|1\d|2[0-3]):(?:0?[1-9]|[1-5]\d):(?:0?[1-9]|[1-5]\d)$"); 


//验证后缀名 
bool IsValidPostfix(string strIn) 

  return Regex.IsMatch(strIn,@"\.(?i:gif|jpg)$"); 


//验证字符是否在4至12之间 
bool IsValidByte(string strIn) 

  return Regex.IsMatch(strIn,@"^[a-z]{4,12}$"); 


//验证IP 
bool IsValidIp(string strIn) 

  return Regex.IsMatch(strIn,@"^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$"); 

// 验证输入汉字 
  public bool IsChinese(string str_chinese)
  {
  return System.Text.RegularExpressions.Regex.IsMatch(str_chinese, @"^[\u4e00-\u9fa5],{0,}$");
  }

 

//验证输入字符串 (至少8个字符) 
  public bool IsLength(string str_Length)
  {
  return System.Text.RegularExpressions.Regex.IsMatch(str_Length, @"^.{8,}$");
  }

//验证数字输入 
  public bool IsNumber(string str_number)
  {
  return System.Text.RegularExpressions.Regex.IsMatch(str_number, @"^[0-9]*$");
  }

// 验证密码长度 (6-18位)

  public bool IsPasswLength(string str_Length)
  {
  return System.Text.RegularExpressions.Regex.IsMatch(str_Length, @"^\d{6,18}$");
  }


}


这个是比较通用的正则表达式,包括很多类型的,当然也有另外一种方法,就是指输入数字的情况可以通过键值来锁定大键盘(删除键除外,字符除外),只留小键盘给用户使用,也是可以达到这个效果的。当然正则表达式比较简单

1..用正则表达式先要引入
  using System.Text.RegularExpressions;

2..比如我只能输入数字的写法如下

  /// <summary>
  /// 输入验证年龄
  /// </summary>
  /// <returns></returns>
  private bool CheckInput()
  {
  bool flag = true;
  Regex reg = new Regex("^\\d+$", RegexOptions.Singleline);
  if (!reg.IsMatch(txtAge.Text.Trim()))
  {
  MessageBox.Show("年龄只能是整数!");
  flag = false;
  }
  return flag;

}

posted on 2012-06-05 17:51  WangAnuo  阅读(393)  评论(0编辑  收藏  举报