一个string,包含了下面的格式:
<object  任意 </object>
几次?
如 :<object  test  </object>
返回:1
如 :<object<aaaafd:>df:<><>dfad:<></object> <object  testabcdef  </object>
返回:2

解决方案 »

  1.   

    Integer count = str.replaceFirst("^<object", "").replaceFirst("</object>$","</object>miao").split("</object>.*<object").length喵~~``
      

  2.   

    regx="<object(.*)</object>";用ORO很简单就可以出来了...... 代表是任何字符
    * 代表0 或者多个
      

  3.   

    Integer count = <object(.*) </object>
      

  4.   

    想了一个笨办法先使用 <object(.*) </object> 匹配,如果匹配就记数加1接着从匹配的边界继续尝试匹配,如次反复。我记得在Perl中有三个变量 $`,$&,$'。就如你这个例子:
    <object <aaaafd:>df: <> <>dfad: <> </object> <object  testabcdef  </object>第一次匹配后:
    $` = "";
    $& = "<object <aaaafd:>df: <> <>dfad: <> </object>"
    $' = " <object  testabcdef  </object>"接着再对$'进行匹配就好了。我想JAVA中应该有类似的东西吧。
      

  5.   

    public static void main(String[] args) throws Exception {
    // TODO Auto-generated method stub
    String str = "<object <aaaafd:>df: <> <>dfad: <> </object> <object  testabcdef  </object>";
    /*Pattern p = Pattern
    .compile("<object([^<]|"+
    "[^<][^/]|"+
    "[^<][^/][^o]|"+
    "[^<][^/][^o][^b]|"+
    "[^<][^/][^o][^b][^j]|"+
    "[^<][^/][^o][^b][^j][^e]|"+
    "[^<][^/][^o][^b][^j][^e][^c]|"
    +"[^<][^/][^o][^b][^j][^e][^c][^t]|"+
    "[^<][^/][^o][^b][^j][^e][^c][^t][^>])*</object>");*/
    String vStr = "</object>";
    StringBuilder sb = new StringBuilder();
    for(int i=0;i<vStr.length();i++){
        if(sb.length()>0){
    sb.append("|");
        }
        for(int j=0;j<i;j++){
    sb.append("[^"+vStr.charAt(j)+"]");
        }
    }
    String regex = "<object("+sb.toString()+")*</object";
    Pattern p = Pattern.compile(regex);

    Matcher m = p.matcher(str);
    while (m.find()) {
        System.out.println(m.group());
    }
        }
      

  6.   

    Integer count = str.replaceFirst("^ <object", "").replaceFirst(" </object>$"," </object>miao").split(" </object>.* <object").length喵~~``
      

  7.   


    Pattern p = Pattern.compile("\\<object .*?\\</object\\>");
        Matcher m = p
            .matcher("<object <aaaafd:>df: <> <>dfad: <> </object> <object  testabcdef  </object>");
        int count = 0;
        while(m.find()){
          count ++;
        }
        System.out.println(count);
      

  8.   


    public class Test95 {
    public static void main(String[] args) {
    String input = " <object <aaaafd:>df: <> <>dfad: <> </object> <object  testabcdef  </object>";
    String regex = "<object(.*?)</object>";
    Pattern p = Pattern.compile(regex);
    Matcher m = p.matcher(input);
    int i=0;
    while(m.find()){
    System.out.println(m.group(1));
    i++;
    }
    System.out.println(i);
    }
    }
      

  9.   

    因为有点变化啊。.................一个string,包含了下面的格式: 
    <object  任意 .swf或.wmv </object> 
    几次? 
    如 : <object  test .swf </object>  <object  test .wmv</object> 返回:2
    如 :<div><object codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab#version=8,0,22,0" height="544" width="680" classid="clsid:D27CDB6E-AE6D-
    <param value="http://xyx.duowan.com/ufile/F/shihun5.swf" name="Movie" />
    <param value="http://xyx.duowan.com/ufile/F/shihun5.swf" name="Src" /> 返回:1
      

  10.   

    如 : <div> <object codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab#version=8,0,22,0" height="544" width="680" classid="clsid:D27CDB6E-AE6D- 
    <param value="http://xyx.duowan.com/ufile/F/shihun5.swf" name="Movie" /> 
    <param value="http://xyx.duowan.com/ufile/F/shihun5.swf" name="Src" /> 返回:1
    ----------------------------------------
    没有结束</object>你也要返回1吗
      

  11.   

    String rs=text.replaceall("(<boject\w*>\w*</object>",":::");
    String[] strs=rs.split(":::");
    int length=strs.length;
      

  12.   

    试试这个:import java.util.regex.Matcher;
    import java.util.regex.Pattern;public class TagCountRegex { public static void main(String[] args) {
    String input =
    "<div> <OBJECT ><Param name=\"\" value=\"test.swf\"> </object><br />\r\n" +
    "<OBJECT ><Param name=\"\" value=\"test.WMV\"></object> demo chars </div>\r\n" +
    "<OBJECT width=\"69\"><Param name=\"\" value=\"test.swf\"></object>";
    Pattern p = Pattern.compile("(?is)<object[^<>]*?>.*?(?:value=\"[^\"]+?\\.(?:swf|wmv)\")+?.*?</object>");
    Matcher m = p.matcher(input);
    int count = 0;
    while (m.find()) {
    count++;
    }
    System.out.println("Count: " + count);
    }}
      

  13.   

    统计</object>出现的次数? 
      

  14.   

    一着急又写错了啊!需要结束的啊!没有结束 </object>不返回啊!谢谢火龙果啊!又麻烦您了啊 
    因为有点变化啊。.................一个string,包含了下面的格式: 
    <object  任意 .swf或.wmv </object> 
    几次? 
    如 : <object  test .swf </object>  <object  test .wmv </object> 返回:2 
    如 : <div> <object codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab#version=8,0,22,0" height="544" width="680" classid="clsid:D27CDB6E-AE6D- 
    <param value="http://xyx.duowan.com/ufile/F/shihun5.swf" name="Movie" /> 
    <param value="http://xyx.duowan.com/ufile/F/shihun5.swf" name="Src" /> 
    </object>返回:1只是匹配<object  任意 .swf或.wmv </object> 
    这种格式啊!
      

  15.   

    <object  任意 .swf或.wmv </object> 
    几次? 
    如 : <object  test .swf </object>  <object  test .wmv </object> 返回:2 
    如 : <div> <object codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab#version=8,0,22,0" height="544" width="680" classid="clsid:D27CDB6E-AE6D- 
    <param value="http://xyx.duowan.com/ufile/F/shihun5.swf" name="Movie" /> 
    <param value="http://xyx.duowan.com/ufile/F/shihun5.swf" name="Src" /> 
    </object> 返回:1 可能我没说清楚啊....上面星星的正则匹配了value
    Pattern p = Pattern.compile("(?is)<object[^<>]*?>.*?(?:value=\"[^\"]+?\\.(?:swf|wmv)\")+?.*?</object>");我给<object  test .swf </object>  <object  test .wmv </object> 字符串
    返回结果不是2.需求格式如下:<object  任意 .swf或.wmv </object> 目的是得到字符串中该格式出现过几次!
    如 : <object  test .swf </object>  <object  test .wmv </object> 
    返回:2 
    如 : <div> <object codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab#version=8,0,22,0" height="544" width="680" classid="clsid:D27CDB6E-AE6D- 
    <param value="http://xyx.duowan.com/ufile/F/shihun5.swf" name="Movie" /> 
    <param value="http://xyx.duowan.com/ufile/F/shihun5.swf" name="Src" /> 
    </object> 
      

  16.   


    可能我没说清楚啊....上面星星的正则匹配了value
    Pattern p = Pattern.compile("(?is)<object[^<>]*?>.*?(?:value=\"[^\"]+?\\.(?:swf|wmv)\")+?.*?</object>");我给<object  test .swf </object>  <object  test .wmv </object> 字符串
    返回结果不是2.需求格式如下:<object  任意 .swf或.wmv </object> 目的是得到字符串中该格式出现过几次!
    如 : <object  test .swf </object>  <object  test .wmv </object> 
    返回:2 
    如 : <div> <object codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab#version=8,0,22,0" height="544" width="680" classid="clsid:D27CDB6E-AE6D- 
    <param value="http://xyx.duowan.com/ufile/F/shihun5.swf" name="Movie" /> 
    <param value="http://xyx.duowan.com/ufile/F/shihun5.swf" name="Src" /> 
    </object> 
      

  17.   


    Integer count = str.replaceFirst(
                        "^<object", "").replaceFirst(
                        "</object>$", "</object>miao").split(
                        ".*[\\.swf[\\.wmv]].*</object>.*<object").length;用,就要用最逆天的办法喵~```
      

  18.   

    用什么正则,判断"</object> <object" 或者"</object>" 出现的次数不就行了