WEB开发网
开发学院软件开发C语言 C#正则表达式编程(三):Match 类和Group类用法 阅读

C#正则表达式编程(三):Match 类和Group类用法

 2010-09-30 22:44:08 来源:WEB开发网   
核心提示: http://zhoufoxcn.blog.51cto.com周公的专栏下面通过例子演示如何将上面的UBB编码转换成HTML代码:///<summary>///下面的代码实现将文本中的UBB超级链接代码替换为HTML超级链接代码///</summary>publicvoi

http://zhoufoxcn.blog.51cto.com 周公的专栏
下面通过例子演示如何将上面的 UBB编码转换成HTML代码:
/// <summary>
/// 下面的代码实现将文本中的UBB超级链接代码替换为HTML超级链接代码
/// </summary>
public void UBBDemo()
{
        string text = " 周公的专栏";
        Console.WriteLine("原始UBB代码:" + text);
        Regex regex = new Regex(@"(\*?)\])([^[]*)(\[\/url\])", RegexOptions.IgnoreCase);
        MatchCollection matchCollection = regex.Matches(text);
        foreach (Match match in matchCollection)
        {
                string linkText = string.Empty;
                //如果包含了链接文字,如第二个UBB代码中存在链接名称,则直接使用链接名称
                if (!string.IsNullOrEmpty(match.Groups[3].Value))
                {
                        linkText = match.Groups[3].Value;
                }
                else//否则使用链接作为链接名称
                {
                        linkText = match.Groups[2].Value;
                }
                text = text.Replace(match.Groups[0].Value, "<a href=\"" + match.Groups[2].Value + "\" target=\"_blank\">" + linkText + "</a>");
        }
        Console.WriteLine("替换后的代码:"+text);
}

程序执行结果如下:

原始UBB代码: [url=http://blog.csdn.net/zhoufoxcn]周公的专栏

替换后的代码:<a href="http://zhoufoxcn.blog.51cto.com" target="_blank">http://zhoufoxcn.blog.51cto.com</a><a href="http://blog.csdn.net/zhoufoxcn"target="_blank">周公的专栏</a>

上面的这个例子就稍微复杂点,对于初学正则表达式的朋友来说,可能有点难于理解,不过没有关系,后面我会讲讲正则表达式。在实际情况下,可能通过 match.Groups[0].Value这种方式不太方便,就想在访问DataTable时写string name=dataTable.Rows[i][j]这种方式一样,一旦再次调整,这种通过索引的方式极容易出错,实际上我们也可以采用名称而不是索引的放来来访问Group分组,这个也会在以后的篇幅中去讲。

出处http://zhoufoxcn.blog.51cto.com/792419/281956

上一页  1 2 3 4 5 6 

Tags:正则 表达式 编程

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接