如何使用java的正则表达式提取html标签?

时间:2022-12-10 05:34:19


import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Test {

   public static void main(String args[]) {
       String html = "<title>ABCD</title>gsdggas<title></title>jkll<title>005</title>";
       // 简单示例,相当于String html=getHtml(String urlString);
       List resultList = getContext(html);
       for (Iterator iterator = resultList.iterator(); iterator.hasNext();) {
           String context = (String) iterator.next();
           System.out.println(context);
       }
   }
   
   /**
    * 提取"<title>XXXX</title>"中的文字XXXX
    * @param html 要解析的html文档内容
    * @return 解析结果,可以多次匹配,每次匹配的结果按文档中出现的先后顺序添加进结果List
    */
   public static List getContext(String html) {
       List resultList = new ArrayList();
       Pattern p = Pattern.compile("<title>([^</title>]*)");//匹配<title>开头,</title>结尾的文档
       Matcher m = p.matcher(html );//开始编译
       while (m.find()) {
           resultList.add(m.group(1));//获取被匹配的部分
       }
       return resultList;
   }
}