C#实现HTML和UBB互相转换的方法

 更新时间:2014年11月14日 11:47:07   投稿:shichen2014  
这篇文章主要介绍了C#实现HTML和UBB互相转换的方法,通过两个自定义函数DoHtmlToUB与ubbtohtml来实现HTML代码与ubb代码间的相互转换,是非常实用的技巧,需要的朋友可以参考下

本文实例讲述了C#实现HTML和UBB互相转换的方法。分享给大家供大家参考。具体实现方法如下:

html转UBB的还不是很完美,有空修改,一些代码来自百度谷歌,如下所示:

复制代码 代码如下:
private string DoHtmlToUBB(string _Html)
{

    _Html = Regex.Replace(_Html, "<br[^>]*>", "\n");
    _Html = Regex.Replace(_Html, @"<p[^>\/]*\/>", "\n");
    _Html = Regex.Replace(_Html, "\\son[\\w]{3,16}\\s?=\\s*([\'\"]).+?\\1", "");
    _Html = Regex.Replace(_Html, "<hr[^>]*>", "[hr]");

    _Html = Regex.Replace(_Html, "<(\\/)?blockquote([^>]*)>", "[$1blockquote]");
    _Html = Regex.Replace(_Html, "<img[^>]*smile=\"(\\d+)\"[^>]*>", "'[s:$1]");
    _Html = Regex.Replace(_Html, "<img[^>]*src=[\'\"\\s]*([^\\s\'\"]+)[^>]*>", "");
    _Html = Regex.Replace(_Html, "<a[^>]*href=[\'\"\\s]*([^\\s\'\"]*)[^>]*>(.+?)<\\/a>", "[url=$1]$2[/url]");
    _Html = Regex.Replace(_Html, "<b>(.+?)</b>",@"\[b\]$1\[/b\]");
    _Html = Regex.Replace(_Html, "<[^>]*?>", "");
    _Html = Regex.Replace(_Html, "&amp;", "&");
    _Html = Regex.Replace(_Html, "&nbsp;", " ");
    _Html = Regex.Replace(_Html, "&lt;", "<");
    _Html = Regex.Replace(_Html, "&gt;", ">");

    return _Html;
}
public string ubbtohtml(string content)  //ubb转html
{
    content = Regex.Replace(content, @"\r\n", "<br/>");
    content = Regex.Replace(content, " ", "&nbsp;");
    content = Regex.Replace(content, @"\[b\](.+?)\[/b\]", "<b>$1</b>");
    content = Regex.Replace(content, @"\[i\](.+?)\[/i\]", "<i>$1</i>");
    content = Regex.Replace(content, @"\[u\](.+?)\[/u\]", "<u>$1</u>");
    content = Regex.Replace(content, @"\[p\](.+?)\[/p\]", "<p class='load'>$1</p>");
    content = Regex.Replace(content, @"\[align=left\](.+?)\[/align\]", "<align='left'>$1</align>");
    content = Regex.Replace(content, @"\[align=center\](.+?)\[/align\]", "<align='center'>$1</align>");
    content = Regex.Replace(content, @"\[align=right\](.+?)\[/align\]", "<align='right'>$1</align>");
    content = Regex.Replace(content, @"\[url=(?<url>.+?)]\[/url]", "<a href='${url}' target=_blank>${url}</a>");
    content = Regex.Replace(content, @"\[url=(?<url>.+?)](?<name>.+?)\[/url]", "<a href='${url}' target=_blank>${name}</a>");
    content = Regex.Replace(content, @"\[quote](?<text>.+?)\[/quote]", "<div class="quote">${text}</div>");
    content = Regex.Replace(content, @"\[img](?<img>.+?)\[/img]", "<img src='${img}' alt=''/>");
    return content;
}

希望本文所述对大家的C#程序设计有所帮助。

相关文章

  • 图解如何使用C#创建Windows服务

    图解如何使用C#创建Windows服务

    本文主要介绍了图解如何使用C#创建Windows服务,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • C#实现多选项卡的浏览器控件

    C#实现多选项卡的浏览器控件

    这篇文章主要为大家详细介绍了C#实现多选项卡的浏览器控件的相关资料,感兴趣的小伙伴们可以参考一下
    2016-03-03
  • Unity命令行打包WebGL的示例代码

    Unity命令行打包WebGL的示例代码

    这篇文章主要介绍了Unity命令行打包WebGL的相关知识,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-02-02
  • C#图像处理之边缘检测(Sobel)的方法

    C#图像处理之边缘检测(Sobel)的方法

    这篇文章主要介绍了C#图像处理之边缘检测(Sobel)的方法,使用自定义sobel算子函数实现对图像边缘的检测功能,需要的朋友可以参考下
    2015-04-04
  • C#获取DataTable对象状态DataRowState

    C#获取DataTable对象状态DataRowState

    这篇文章介绍了C#获取DataTable对象状态DataRowState的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-02-02
  • mvc开启gzip压缩示例分享

    mvc开启gzip压缩示例分享

    这篇文章主要介绍了mvc开启gzip压缩示例,需要的朋友可以参考下
    2014-03-03
  • C#使用winform实现进度条效果

    C#使用winform实现进度条效果

    这篇文章主要为大家详细介绍了C#使用winform实现进度条效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-07-07
  • C#委托与冒泡排序实例

    C#委托与冒泡排序实例

    这篇文章介绍了C#委托与冒泡排序的实例,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-04-04
  • c# 获得本地ip地址的三种方法

    c# 获得本地ip地址的三种方法

    这篇文章主要介绍了c# 获得本地ip地址的三种方法,帮助大家更好的理解和实用c#,感兴趣的朋友可以了解下
    2020-12-12
  • .net4.5使用async和await异步编程实例

    .net4.5使用async和await异步编程实例

    .net4.5使用async和await异步编程实例,大家参考使用吧
    2013-12-12

最新评论