u013179958
CSDNRGY
2017-03-02 07:46
采纳率: 99.5%
浏览 2.1k

在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条回答 默认 最新

  • oyljerry
    oyljerry 2017-03-02 08:39
    已采纳

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

    点赞 评论
  • qq_25872739
    尝拨云见子 2017-03-02 08:53

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

    点赞 评论
  • caozhy
    点赞 评论
  • sun1021873926
    夕阳雨晴 2017-03-03 01:11
    点赞 评论
  • sun1021873926
    夕阳雨晴 2017-03-03 01:13
    点赞 评论
  • sun1021873926
    夕阳雨晴 2017-03-14 01:55

    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)); //第三组  
    

    }

    点赞 评论

相关推荐