站内搜索:
首页 >> 前端 >> 内容
java使用正则来替换网页连接中href=“....”内容的方法

时间:2017/10/31 16:26:11

直接上代码,很简单,如果你是大神,请忽略本文章,这是给做web的新手!

//主函数

package com.yemian;

import java.io.IOException;

public class Xin {

public static void main(String[] args) throws IOException {

//两个文件,第一个是在网站上下载的页面,第二个保存的文件,注意这里用的是gbk,utf需要转码,或者将IO的读取设为utf-8

Element el = new Element("555.html", "zf1.html");

el.run();

}

}

//替换类

package com.yemian;

import java.io.BufferedReader;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileWriter;

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.Writer;

import java.nio.charset.Charset;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

public class Element {

private BufferedReader buf = null;

private Writer out = null;

private int n = 0;

public Element(String buf, String out) {

//super();

try {

this.buf = new BufferedReader(new InputStreamReader(new FileInputStream(new File(buf))));

this.out = new FileWriter(new File(out));

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

public void run() throws IOException {

String str = null;

StringBuffer sb = new StringBuffer();

Pattern p = Pattern.compile("(](.*)");

Matcher m =null;

while((str = buf.readLine()) != null) {

str = href("(.*)(href=\"([^\"]{2,})\")([\\s>]?)(.*)",str);

out.write(str);

out.write("\r\n");

}

buf.close();

out.close();

System.out.println(n);

}

public String href(String regex,String str) {

Pattern p = Pattern.compile(regex);//建立匹配起

Matcher m = p.matcher(str);//匹配

String fs = null;

while(str.matches(regex)){

if(m.find()) {

str = m.group(1)+" href=\"#\" "+m.group(4)+m.group(5);

m = p.matcher(str);

}else{

break;

}

n++;//统计替换了多少个

m = p.matcher(str);//查找下一个可能有很多

}

return str;

}

}

  • 上一篇:bootStrap table 使用过程详解
  • 下一篇:HTTP协议介绍
  • 返回顶部