String s = "<SPAN id=btAsinTitle>The Phantom [Blu-ray] (1996)</SPAN></H1></SPAN></H1></SPAN></H1></SPAN></H1>";我想只输出The Phantom [Blu-ray] (1996)这段内容,但是用下面的语句总是把全句就匹配完了
Pattern p = Pattern.compile("(bt.*Title.*)[S[s]]");  // 这里老是不匹配
Matcher m = p.matcher(s);
while(m.find()){
System.out.println(m.group(0));
}
谁有更好的语句,小弟感谢了

解决方案 »

  1.   

    你这个字符串是怎么得来的 
    是一定含有<span></span>标签吗
    找到获取的字符串的规律  用公共的方法去掉不要的
    你这里id=btAsinTitle 有可能变化吧?
    直接用字符串截取吧
    就这个来看 直接把第一个</span>起 后面的都去掉 
    然后把最后一个  > 前面的都去掉 这样就得到你想要的了
      

  2.   

    String s = " <span id=btAsinTitle>The Phantom [Blu-ray] (1996) </span> <h1> <span>aaaa </span>  </h1>  "; 
    Pattern p = Pattern.compile("<span id=btAsinTitle>([^>]*)</span>");
    Matcher matcher = p.matcher(s);
    boolean matchFound = matcher.find();
    String content = "";
    if (matchFound) {
    // Get all groups for this match
    for (int i=1; i<= matcher.groupCount(); i++) {
    String groupStr = matcher.group(i);
    content = groupStr;
    }
    }
    System.out.println(content);
    放到main方法测试 ,成功了给分!
      

  3.   

    这句  Pattern p = Pattern.compile("(bt.*Title.*)[S[s]]");  // 这里老是不匹配 
    换成:Pattern p = Pattern.compile("(?<=\\<SPAN id=btAsinTitle>).*?(?=\\</SPAN>)");