一些正则表达式例子

转:遥远的梦http://www.cnblogs.com/ziyiFly/tag/GridView/

一.网络验证应用技巧
1. 验证 E-mail格式
2. 验证 IP 地址 
3. 验证 URL  

二. 常用数字验证技巧
1. 验证电话号码
2. 输入密码条件(字符与数据同时出现)
3.邮政编号
4. 手机号码
5.身份证号
6. 两位小数
7.一年的12个月
8.一个月的31天
9.数字输入
10. 密码长度 (6-18位)
11. 非零的正整数

三. 常用字符验证技巧
1. 大写字母
2. 小写字母
3. 检查字符串重复出现的词
4. 替换字符串 
5. 拆分字符串
6. 验证输入字母
7. 验证输入汉字
8. 验证输入字符串 (至少8个字符)

Code

    public bool IsIDcard(string str_idcard)
    {
            
return System.Text.RegularExpressions.Regex.IsMatch(str_idcard, @"(^\d{18}$)|(^\d{15}$)");
    }
   //两位小数
    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)$");
    }
    //数字输入
    
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}$");
    }
    //非零的正整数
    
public bool IsIntNumber(string str_intNumber)
    {
            
return System.Text.RegularExpressions.Regex.IsMatch(str_intNumber, @"^\+?[1-9][0-9]*$");
    }
   //大写字母
    
public bool IsUpChar(string str_UpChar)
    {
            
return System.Text.RegularExpressions.Regex.IsMatch(str_UpChar, @"^[A-Z]+$");
    }
    //小写字母
    public bool IsLowChar(string str_UpChar)
    {
            
return System.Text.RegularExpressions.Regex.IsMatch(str_UpChar, @"^[a-z]+$");
    }
    // 检查字符串重复出现的词
     
private void btnWord_Click(object sender, EventArgs e)
     {
           System.Text.RegularExpressions.MatchCollection matches 
= System.Text.RegularExpressions.Regex.Matches(label2.Text, 

             
@"\b(?<word>\w+)\s+(\k<word>)\b", System.Text.RegularExpressions.RegexOptions.Compiled |            System.Text.RegularExpressions.RegexOptions.IgnoreCase);
            
if (matches.Count != 0)
            {
                
foreach (System.Text.RegularExpressions.Match match in matches)
                {
                    
string word = match.Groups["word"].Value;
                    MessageBox.Show(word.ToString(),
"英文单词");
                }
            }
            
else { MessageBox.Show("没有重复的单词"); }
        } 
   //替换字符串
   
private void button1_Click(object sender, EventArgs e)
   {
       
string strResult = System.Text.RegularExpressions.Regex.Replace(TextBox2.Text, @"[A-Za-z]\*?", TextBox3.Text);
       MessageBox.Show(
"替换前字符:" + "\n" + TextBox2.Text + "\n" + "替换的字符:" + "\n" + TextBox2.Text + "\n" +  "替换后的字符:" + "\n" + strResult,"替换");
   }
   //拆分字符串
  
private void button2_Click(object sender, EventArgs e)
   {
            
//实例: 甲025-8343243乙0755-2228382丙029-32983298389289328932893289丁
            foreach (string s in System.Text.RegularExpressions.Regex.Split(TextBox2.Text,@"\d{3,4}-\d*"))
            {
                TextBox2.Text 
+= s; //依次输出 "甲乙丙丁"
            }

    }
   //验证输入字母
   public bool IsLetter(string str_Letter)
   {
            
return System.Text.RegularExpressions.Regex.IsMatch(str_Letter, @"^[A-Za-z]+$");
   }

   
//验证输入汉字
   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,}$");
  }

posted @ 2009-01-13 22:39  jianlinglo  阅读(252)  评论(0编辑  收藏  举报