Java中的正则表达式的匹配和分组

来源:互联网 发布:鲁大师软件 编辑:程序博客网 时间:2024/05/29 19:06

 

要求是以h2标题为分隔线,分隔后,组成的字符串是H2和UL;这下面这个例子是分为二个字符串

 

<h2>第一个标题</h2><ul>      <li>子标题</li>      <li>子标题</li>      <li>子标题</li>      <li>子标题</li></ul><h2>第二个标题</h2><ul>      <li>子标题</li>      <li>子标题</li>      <li>子标题</li>      <li>子标题</li></ul>

 

Java实现

从<h2开始匹配到</ul>为结束点内的为一个组。中间要排除<h2>的标签。要不然会从第一个 H2开始到最后一个UL结束这样匹配出来的字符串还是一个,所以中要排除中间有<h2>的标签,这个就分了二部分字符串,第一部分是一个H2和UL 第二部分也是一个<H2和Ul.

 

    String reg_charset = "<h2([\\w<//>\u4E00-\u9FA5]+((.(?!<h2>))*.)</ul>)";      p = Pattern.compile(reg_charset);      m = p.matcher("" +    "<h2>笔记本整机h2笔记本整机h2</h2><hs> " +    "<ul class=\"cate-item clearfix\"><li> <i></i><a href=\"/price_cate_64.html\">笔记本</a> <li></ul>"+  "<ul class=\"cate-item clearfix\"><li><h3><i>【 中什么</i><li></ul>"+      "<h2>笔记本整机5笔记本整机h5</h2> " +    "<ul class=\"cate-item clearfix\"><li><h3><i></i><a href=\"/price_cate_64.html\">笔记本</a><li></ul>"+    "<ul class=\"cate-item clearfix\"><li><h3><i></i><a href=\"/price_cate_64.html\">笔记本2</a></h3><li></ul>" );      System.out.println(m.groupCount());    while (m.find())      {      System.out.println(m.group());      } 

 

原创粉丝点击