正则表达示测试器~

最近经常用到正则,不过不同语言之间的正则一些特性差别比较大,自已写个小工具,分享下:
下载地址:http://xiaoxiao.bfor.cn/download/regex.rar
按惯例,上几张图:
单击在新窗口中打开图片,Ctrl+滚轮缩放图片
单击在新窗口中打开图片,Ctrl+滚轮缩放图片
单击在新窗口中打开图片,Ctrl+滚轮缩放图片


最后那个,生成代码,使用RichTextBox代码着色分二步:
关键字着色:
复制  保存
//定义关键字
string[] keys = new string[] { "using", "return", "if", "else", "public" };
foreach (string key in keys)
{
    Regex r = new Regex(key);
    MatchCollection mc = r.Matches(rtxtCode.Text);
    foreach (Match m in mc)
    {
        if (m.Success)//当匹配成功,对关键字着色
        {
            rtxtCode.Select(m.Index, m.Length);
            rtxtCode.SelectionColor = Color.Blue;
        }
    }
}

字符串着色这个要单独来:
复制  保存
Regex r1 = new Regex("\"(?<string>[^\"]*)\"");
MatchCollection mc1 = r1.Matches(rtxtCode.Text);
foreach (Match m in mc1)
{
    if (m.Success)
    {
        Group g = m.Groups["string"];
        if (g.Success)
        {
            rtxtCode.Select(g.Index - 1, g.Length + 2);
            rtxtCode.SelectionColor = Color.Red;
        }
    }
}

方法是查找字符串索引,右边去掉一个字符,右边加2,当然复杂的就不适用了,需要用环视判断字符边界,另外还要区分字符串中的转义符..
posted @ 2007-11-12 14:26  阳光囧男  阅读(201)  评论(0编辑  收藏  举报