不太明白你的意思,你看看下面的是不是你想要的效果
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class FindDiv{
public static void main(String[] args){
String str = "<div>wen zi \r afskd</div>"
+ "<div>wen zi </div>"
+ "<div>wen zi </div>"
+ "<div>wen zi </div>";
regex(str);
find(str);
}

private static void regex(String str){
System.out.println("===================regex=========================");
Pattern p = Pattern.compile("(?<=<div>)(.*?)(?=</div>)", Pattern.DOTALL );
Matcher m = p.matcher(str); while( m.find() ){
System.out.println( m.group() );
}
System.out.println("===================regex=========================");
}

private static void find(String str){
System.out.println("===================find=========================");
int start = 0;
int end = 0;
while( true ){
start = str.indexOf("<div>", end);
end = str.indexOf("</div>", start);
if( start == -1 ){
break;
}
System.out.println(str.substring(start+5, end));
}
System.out.println("===================find=========================");
}
}

解决方案 »

  1.   

    过滤html标签String reg = "<([^>]*)>";
    String s = "<1>hhh<ac>a</sa>bbbbb<b></b>ccc<>";
    Pattern pa = Pattern.compile(reg);
    Matcher ma = pa.matcher(s);
    StringBuffer sb = new StringBuffer();
    boolean rs = ma.find();
    while(rs){
    ma.appendReplacement(sb, "");
    rs = ma.find();
    }
    ma.appendTail(sb);
    System.out.println(sb.toString());