日期:2014-05-17  浏览次数:20647 次

一个正则解析html问题,请相助!
类似的html标签,有两种情况:

A:
<z:op alt="hello alt" title="demo" ... >
...<hello>Hello</hello>...
</z:op>

B:
<z:op alt="hello alt" title="demo" ... />


请问如何用正则来解析以下要求:
1、提取z:op中的op
2、提取z:op中的所有属性
3、如果为非闭合标签,则提取中间内容,如:...<hello>Hello</hello>...



------解决方案--------------------
第一个不懂啥意思,
第二个:
 //正则提取
public static List<String> getContext2(String html) {


List<String> resultList = new ArrayList<String>();
        Pattern p = Pattern.compile("\"(.*?)\" ");//匹配"开头," 结尾的文档
        Matcher m = p.matcher(html );//开始编译
        while (m.find()) {
         String str=m.group(1);
         resultList.add(str);//获取被匹配的部分
        }
        return resultList;
    }
不过说实在的,这个应该用dom解析更合适一些。
------解决方案--------------------
第二种形式叫自闭合标签不是非闭合标签