`
leichenlei
  • 浏览: 124208 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

栈实现HTML和UBB的转换

阅读更多

之前做论坛的时候曾经傻b呵呵的用环视正则做的,原来栈就可以啊。

这个例子不实现细节,也不完成什么功能,只是说明栈可以处理前后匹配,上代码。

package com.test;

import java.util.Stack;


public class Test {
	class Node {
		int start;
		int end;
		String tagName;
	}
	/**
	 * 忽略了匹配细节,实现html解析
	 * @param html html
	 * @return
	 */
	public String ubb(String html){
		StringBuffer result = new StringBuffer();
		int pos = -1;//标记每个开始标签符号位置
		Stack<Node> tagStack = new Stack<Node>();
		int len = html.length();
		for(int i = 0; i < len; i++){
			switch(html.charAt(i)){
				case '<':
					pos = i;
				break;
				case '>':
					if(pos != -1){
						Node node = new Node();
						node.start = pos;
						node.end = i + 1;
						node.tagName = html.substring(pos + 1, i);
						if(tagStack.isEmpty() || !tagStack.peek().tagName.equals(node.tagName)){
							tagStack.push(node);
						}else{
							Node startNode = tagStack.pop();
							System.out.println(html.substring(startNode.start, i + 1));
						}
						pos = -1;
					}
				break;
			}
		}
		return result.toString();
	}
	public static void main(String[] args) throws Exception {
		System.out.println(new Test().ubb("<a><b>asdf<b><a>"));
	}
}
分享到:
评论

相关推荐

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

    本文实例讲述了C#实现HTML和UBB互相转换的方法。分享给大家供大家参考。具体实现方法如下: html转UBB的还不是很完美,有空修改,一些代码来自百度谷歌,如下所示: 代码如下:private string DoHtmlToUBB(string _...

    HTML与UBB互转 htmltoubb ubbtohtml

    完整的html与ubb互转代码完整的html与ubb互转代码

    高速UBB标签转换引擎

    2. 容错性非常好,比如对于错误UBB语法"[b]你[i]好[/b]啊[/i]",可以选择两种容错模式“忽略(IGNORE)”和“关闭(CLOSE)”,如果采用忽略模式,那么错误的标签会被忽略掉,也就是转换为"你[i]好啊[/i]";而如果采用...

    ubb转html(asp.net)

    ubb转换代码 ubb转html(asp.net)

    UBB转换HTML的js代码

    很好用,有复杂和简单两种方法。正则来转换。

    UBB_URL转换工具

    UBB_URL转换UBB_URL转换UBB_URL转换UBB_URL转换UBB_URL转换UBB_URL转换UBB_URL转换UBB_URL转换UBB_URL转换UBB_URL转换UBB_URL转换UBB_URL转换UBB_URL转换

    简单实用的HTML到UBB转换脚本工具实现说明

    因为本人一直从事WEB前端开发工作,所以我知道HTML语义的重要性,也清楚如何标准编码,所以我发布在博客的HTML符合下面几个标准,使用这些标准,有利于更成功地实现HTML 到UBB的转换: (1)所有标签合法嵌套并正常...

    ubb文件ubb文件ubb文件

    ubb文件ubb文件ubb文件ubb文件ubb文件ubb文件ubb文件ubb文件ubb文件

    jquery html在线ubb编辑器代码

    jquery html在线ubb编辑器代码

    Html2UBB在线编辑器

    Html2UBB在线编辑器,功能比较简单,用于评论等

    UBB语法UBB语法UBB语法

    UBB语法.txtUBB语法.txtUBB语法.txtUBB语法.txt

    得心应手HTML&UBB互转器

    得心应手HTML&UBB互转器,可以将任何的 HTML 转换成 UBB ,亦可以将任何的 UBB 转换成 HTML ,支持复制到剪切板

    实现ubb代码的java类

    一个实现了ubb代码的java类,并预留了扩展接口,便于你增加新的样式代码

    to_html_ubb

    to_html_ubb,把关键词和链接,组合成 html 和 ubb 格式

    ubb转换工具(很好用)!

    ubb转换工具,是个不错的工具,我一开始弄论坛引用就是用的这个,希望对你也有帮助!

    UBB替换为Html

    将UBB代码替换为Html代码,浅显易懂的示例,有demo哦

    js 特效 html 特效 UBB代码的应用

    js 特效 html 特效 UBB代码的应用

    UBB码转HTML码函数库和例子

    目前一般论坛发贴都不支持html代码,而是采用ubb代码如[url]http://www.ultimatebb.com[/url] 使用正则表达式可以提取文档中所需要的字符我写的通过正则表达式将UBB码转HTML码函数库和例子几乎支持所有ubb代码花了好...

    UBB编辑器 jtbcEditor v1.0

    jtbcEditor 是一款所见即所得的UBB编辑器,安全高效,整合了HTML编辑器和一些主流网页编辑器的优点,很适合在网站前台使用。jtbcEditor为了方便大家的使用,内含了三个调用实例:  demo1.html: 是一个标准的UBB编辑...

Global site tag (gtag.js) - Google Analytics