正则表达式快速验证工具

正则表达式快速验证工具

Posted on 2009-01-05 21:39 wknight 阅读(278) 评论(0)   编辑 收藏 网摘 所属分类: WinForm

   刚刚在codeproject上面逛,看见David Veeneman以前写的一篇验证正则的文章很不错,小巧快捷,安装后,可以快速的编写正则表达式,并填入验证文本进行验证。思路:将正则表达式文本作为Regex构造函数的一个参数,来创建一个Regex的实例,如果正则表达式错误,Regex类将抛出一个参数无效异常,利用try...catch捕获这个异常,将异常信息作为消息显示给用户,如果正则表达式正确,再继续将测试文本和正则进行匹配,并提示成功信息。

  见图:

测试文本匹配正则失败界面

测试文本匹配正则成功的界面

正则表达式输入不正确时的异常信息

源代码分析:

using  System;
using  System.Collections.Generic;
using  System.ComponentModel;
using  System.Data;
using  System.Drawing;
using  System.Text;
using  System.Windows.Forms;
using  System.Text.RegularExpressions;

namespace  RegexTester
{
    
public   partial   class  Form1 : Form
    {
        
private  Regex regex  =   null ;

        
public  Form1()
        {
            InitializeComponent();
        }

        
private   void  RegexText_TextChanged( object  sender, EventArgs e)
        {
            
//  没有正则表达式输入
             if  (RegexText.Text  ==  String.Empty)
            {
                RegexText.BackColor 
=  Color.White;
                TestText.BackColor 
=  Color.White;
                Message.Text 
=  String.Empty;
                
return ;
            }

            
//  验证正则
             try
            {
                regex 
=   new  Regex(RegexText.Text);
                Message.Text 
=  String.Empty;
                RegexText.BackColor 
=  Color.PaleGreen;
                
this .ValidateTestBox();
            }
            
catch  (ArgumentException error)
            {
                Message.Text 
=  error.Message;
                RegexText.BackColor 
=  Color.LightPink;
            }
        }

        
private   void  TestText_TextChanged( object  sender, EventArgs e)
        {
            
this .ValidateTestBox();
        }

        
private   void  ValidateTestBox()
        {
            
//  如果没有正则表达式即跳过验证
             if  (RegexText.Text  ==  String.Empty)
            {
                TestText.BackColor 
=  Color.White;
                
return ;
            }

            
//  验证正则
             bool  IsMatch  =  regex.IsMatch(TestText.Text);
            
if  (IsMatch)
            {
                Message.Text 
=   " 匹配成功 " ;
                Message.ForeColor 
=  Color.Green;
                TestText.BackColor 
=  Color.PaleGreen;
            }
            
else
            {
                Message.Text 
=   " 匹配失败 " ;
                Message.ForeColor 
=  Color.Red;
                TestText.BackColor 
=  Color.LightPink;
            }
        }

        
private   void  buttonClearAll_Click( object  sender, EventArgs e)
        {
            RegexText.Clear();
            TestText.Clear();
        }

        
private   void  buttonClearRegex_Click( object  sender, EventArgs e)
        {
            RegexText.Clear();
        }

        
private   void  buttonClearTest_Click( object  sender, EventArgs e)
        {
            TestText.Clear();
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值