`

字符串替换

    博客分类:
  • JSP
阅读更多

百度RSS新闻中的XML的

< description >
- <![CDATA[
<a target=_blank href=http://news.beijingoffice.com.cn/35/2008111185936.html><img border=0 src=image/20/94/339730.jpg></a><br>刚刚过去的传统楼市"银十"风光不再,在月初的秋交会和下旬出台的中央"救市"新政合捧之下,10月深圳楼市的成交并没有出现显著放量。最新出炉的研究报告显示,上月深圳一手房成交量仅上涨10%,均价12979元/平方米 ... <br /> <a href=http://tech.qq.com/a/20081111/000109.htm target=_blank style="font-size:13px">大摩报告称:国内房市将进入数年熊市</a><nobr><span style="padding-left:10px;font-size:12px;color:#666666">QQ</font></nobr><br> <a href=http://sz.house.sina.com.cn/news/2008-11-11/082721998.html target=_blank style="font-size:13px">深圳上周新房成交量翻一番 均价同步涨近一成</a><nobr><span style="padding-left:10px;font-size:12px;color:#666666">新浪</font></nobr><br>  - <a href=http://www.p5w.net/news/cjxw/200811/t2000687.htm target=_blank><font color="#008000">全景网</font></a> - <a href=http://www.house365.com/news/html/200811/79353_1.htm target=_blank><font color="#008000">365地产家居网</font></a> - <a href=http://cd.focus.cn/news/2008-11-11/562634.html target=_blank><font color="#008000">焦点房地产</font></a> - <a href=http://www.cq.xinhuanet.com/house/2008-11/11/content_14883026.htm target=_blank><font color="#008000">新华网重庆频道</font></a>  - <a href=/n?cmd=2&page=%68%74%74%70%3a%2f%2f%77%77%77%2e%63%66%69%2e%6e%65%74%2e%63%6e%2f%70%32%30%30%38%31%31%31%31%30%30%30%34%39%35%2e%68%74%6d%6c&pn=1&clk=crel&cls=housenews&where=focuspage&class=housenews><font color="#008000">524条相关&gt;&gt;</font></a><br>
  ]]> <script type="text/javascript"><!----></script>
  </ description >
目标:
1.src=image/20/94/339730.jpg替换为http://news.baidu.com/image/20/94/339730.jpg
2.最后一个<a>标签为相关信息,删除

解决办法:用下则表达式为主解决了问题一,用到了HTML Parser解决问题二

 

public String doReplace(String content) {
		String content2 = content;
		try {
			Parser myParser;
			myParser = Parser.createParser(content2, "GBK");
			NodeFilter filter = new TagNameFilter("A");
			NodeList list = myParser.extractAllNodesThatMatch(filter);
			Node tempNode = list.remove(list.size()-1);
			int startNum = tempNode.getStartPosition();
			content2 = content2.substring(0,startNum)+"<br/>";
		} catch (ParserException e) {
			e.printStackTrace();
		}
		
		
		
		Pattern p1 = Pattern.compile("<img(.*?)>", Pattern.CASE_INSENSITIVE);
		Matcher m1 = p1.matcher(content2);
		StringBuffer sb = new StringBuffer();
		while (m1.find()) {
			String tempImg = m1.group();
			int x = tempImg.indexOf(" src");
			// 用图片的格式来定位src结束位置
			int y = tempImg.indexOf(".jpg");
			if (y == -1) {
				y = tempImg.indexOf(".jpeg");
				if (y == -1) {
					y = tempImg.indexOf(".png");
					if (y == -1) {
						y = tempImg.indexOf(".gif");
						if (y == -1) {
							y = tempImg.indexOf(".bmp");
						} else {
							y += 4;
						}
					} else {
						y += 4;
					}
				} else {
					y += 5;
				}
			} else {
				y += 4;
			}
			if (y != -1) {
				// 去掉src处空格
				String tempSrc = tempImg.substring(x + 4, y).trim();
				if (tempSrc.startsWith("=")) {
					tempSrc = tempSrc.substring(1, tempSrc.length()).trim();
				}

				// 替换不是以http://开头的图片路径
				if (!tempSrc.startsWith("http://")) {
					tempSrc = "=http://news.baidu.com/" + tempSrc;
					tempImg = tempImg.substring(0, x + 4) + tempSrc
							+ tempImg.substring(y, tempImg.length());
				}
				// 以上代码达到了把<img >标签的src属性替换
				// -----------------------
				m1.appendReplacement(sb, tempImg);

			}

		}

		m1.appendTail(sb);
		content2 = sb.toString();
		return content2;
	}

 

分享到:
评论

相关推荐

    PB程序中常用的字符串替换函数

    然而,PowerBuilder本身并未内置专门用于字符串替换的函数,这给开发者带来了一定的不便。为了解决这个问题,很多开发者会自行编写一些实用的字符串替换函数来满足项目需求。下面我们就基于题目中的信息,详细探讨...

    java 文本字符串替换工具

    在Java编程语言中,文本字符串替换是一个常见的任务,特别是在处理大量文本数据时。这个"java 文本字符串替换工具"很可能是为了帮助开发者高效地搜索和替换文件中的特定文本内容。让我们详细了解一下如何在Java中...

    oracle字符串替换

    ### Oracle字符串替换:使用REGEXP_REPLACE函数 在Oracle数据库中,对字符串进行处理是一项非常常见的需求,尤其是在数据清洗、格式转换等场景下。本文将详细介绍如何利用`REGEXP_REPLACE`函数来实现字符串替换功能...

    字符串替换C程序

    C语言内没有字符串替换函数,此函数实现字符串替换

    C语言字符串替换函数strrpl支持中文汉字

    C语言字符串替换函数strrpl支持中文汉字,解决含中文汉字,可能替换错误的情况。支持GBK、GB18030字符串。

    将已知文件中的指定字符串替换为其他的字符串

    将已知文件中的指定字符串替换为其他的字符串

    MyReplace字符串替换工具

    《MyReplace字符串替换工具详解与应用》 在日常的编程工作和文本处理中,我们经常需要对字符串进行各种操作,其中替换字符是一项基础且频繁的任务。传统的字符串替换方法可能需要手动进行十六进制转换,这无疑增加...

    文件字符串替换工具

    《文件字符串替换工具详解》 在信息技术领域,文件字符串替换是一项常见的操作,它涉及到文本处理、数据处理以及软件开发等多个方面。本篇文章将深入探讨基于C++编程语言实现的文件字符串替换工具,揭示其原理、...

    批量字符串替换工具

    《批量字符串替换工具详解》 在日常的计算机操作中,我们常常需要对大量文本文件中的特定字符串进行查找和替换,以实现数据的统一或者格式的调整。这时,一款高效的批量字符串替换工具就显得尤为重要。本文将详细...

    java字符串替换 代码转换相关源码.rar

    java字符转换类代码,可以实现判断字符串是否为空,并删除首尾空格,字符串替换函数,代码转换,GBK转换为ISO-8859-1,代码转换 从srcCode转换为destCode,代码转换,GBK转换为big5,替换非法字符,标记本身等于分隔...

    c++实现的字符串替换功能

    使用c++写的字符串替换函数,可以完成字符串的替换功能

    Delphi字符串快速替换函数,速度超快 秒杀自带的StringReplace函数

    针对这种情况,开发人员经常寻找更高效的替代方案,如在本案例中提到的“Q_Replace.pas”文件所包含的快速字符串替换函数。 `StringReplace`函数的语法如下: ```delphi function StringReplace(const S, Find, ...

    vb6字符串替换工具

    在VB6(Visual Basic 6)环境中,字符串处理是一项常见的任务,而“vb6字符串替换工具”正是这样一个专为处理字符串替换问题而设计的应用程序。它提供了用户友好的界面和功能,使得程序员或普通用户能够方便地在文本...

    c语言实现字符串替换

    c语言实现字符串替换c语言实现字符串替换c语言实现字符串替换c语言实现字符串替换c语言实现字符串替换c语言实现字符串替换c语言实现字符串替换c语言实现字符串替换c语言实现字符串替换c语言实现字符串替换c语言实现...

    vim 全文字符串替换

    ### Vim全文字符串替换 在日常的编程或文本编辑过程中,我们经常会遇到需要对大量文本进行字符串替换的需求。尤其是在处理从Windows系统复制到Linux系统中的文本时,常常会遇到换行符不兼容的问题,例如文中提到的`...

    字符串替换java类

    字符串替换java类 具体应用:例如把utf-8替换成gb2312

    linux 下c写的字符串替换

    字符串操作是C语言编程中的基础部分,而字符串替换则是处理文本数据时常见的需求。本文将深入探讨如何在Linux下使用C语言实现字符串替换的功能。 首先,我们需要理解C语言中的字符串。在C语言中,字符串是由字符...

    fortran分割字符串和字符串替换的子程序_Fortran_

    下面是一个简单的字符串替换示例: ```fortran function replace_string(input_string, old_substring, new_substring) result(output_string) character(len=*), intent(in) :: input_string, old_substring, ...

    一个批量字符串替换小工具

    批量字符串替换小工具,支持自定义文件扩展名,包含目录及子目录。

    比CString更高效的字符串替换

    本话题聚焦于一个优化过的字符串替换方法,针对原生MFC库中`CString::Replace`函数性能问题进行改进。`CString`是Microsoft Foundation Class (MFC) 库中的一个类,用于方便地处理和操作字符串,但有时其性能可能不...

Global site tag (gtag.js) - Google Analytics