在Java程序中如何匹配正则表达式所匹配的结果?

图片说明

例如我写了一个正则,可以匹配百度上面所有的a标签

    public static void main(String[] args)
    {
        String baiduHtml = getUrlString();
        System.out.println(baiduHtml);
        Pattern pattern = Pattern.compile("<a(.*?)>(.*?)</a>");  
        Matcher matcher = pattern.matcher(baiduHtml);  
        if (matcher.find()) {   
            System.out.println(matcher.group());
        }
    }

输出结果

 <a href=http://news.baidu.com name=tj_trnews class=mnav>新闻</a>

6个回答

对于这类xml格式,最好不用正则匹配,处理会很麻烦
可以用xml类库来解析
http://www.ibm.com/developerworks/cn/xml/dm-1208gub/

一般处理xml不会用正则,而是xpath

正则表达式分组命名捕获 (?(.*?))
http://blog.csdn.net/su1216/article/details/49407381

正则表达式分组命名捕获图片说明

http://blog.csdn.net/su1216/article/details/49407381

u013179958
CSDNRGY 我匹配了12处如何把其他处都给输出
3 年多之前 回复

String s = "2015-10-26";

Pattern p = Pattern.compile("(?\d{4})-(?\d{2})-(?\d{2})");

Matcher m = p.matcher(s);

if (m.find()) {

System.out.println("year: " + m.group("year")); //年

System.out.println("month: " + m.group("month")); //月

System.out.println("day: " + m.group("day")); //日

System.out.println("year: " + m.group(1)); //第一组  
System.out.println("month: " + m.group(2)); //第二组  
System.out.println("day: " + m.group(3)); //第三组  

}

sun1021873926
夕阳雨晴 m.find()循环获取匹配的结果集。http://blog.csdn.net/siemenliu/article/details/5911550
3 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问