如题 本人想截取 特定字符串 字符串内容 如下[aaa]
asd asda 123 eee
add qq 23 ooddsa dwdq asda[bbb]
adad ada d ad 
ad  24 12e
如此 需要 取出[aaa]与[bbb] 之间内的 内容
请 大侠们 指教一二啊  

解决方案 »

  1.   

    String str = "你的字符串"; 
    String str1 = "[aaa]";
    String str2 = "[bbb]";
    String str3 = str.replaceAll(str1,"*"); 
    String str4 = str3.replaceAll(str2,"*"); 
    String[] strArr = str4.split['*'];
    你试试行不行
      

  2.   

    [aaa]
    asd asda 123 eee
    add qq 23 ooddsa dwdq asda[bbb]
    需要 取出[aaa]与[bbb] 之间内的 内容
    是要取出
    asd asda 123 eee
    add qq 23 ooddsa dwdq asda
    这些字母?
      

  3.   

    简单做法:找到[aaa]字符位置和[bbb]字符位置,使用subString方法来获取
    正则也可以实现,不过不太好理解而已
      

  4.   

    最直接:
    String a="[aaa] asd asda 123 eee add qq 23 oo ddsa dwdq asda [bbb] adad ada d ad ad  24 12e";
    String b =a.substring(a.indexOf("[aaa]")+5,a.indexOf("[bbb]"));
      

  5.   

    如果你的字符串只有一个[aaa]和一个[bbb]那么醉直接的办法就是先用string的index方法找出这两个的位置然后使用substring截取了,记得截取的时候起始位置要加上5,如果有多个就要看具体要求了
      

  6.   


    //正则提取
    public static List<String> getContext() {
    //String html="kk<p>123456</p>ssss";
    String html="ss<p>kk</p>ss";
    List<String> resultList = new ArrayList<String>();
            Pattern p = Pattern.compile("<p>([^</p>]*)");//匹配<p>开头,</p>结尾的文档
            Matcher m = p.matcher(html );//开始编译
            while (m.find()) {
                resultList.add(m.group(1));//获取被匹配的部分
            }
            return resultList;
        }
    如上。楼主的要求原理类似
      

  7.   

    如果有换行符(\n)的话,用下边的办法。String str = "[aaa]\nasd asda 123 eee\nadd qq 23 oo\n\n" +
    "ddsa dwdq asda\n\n[bbb]\nadad ada d ad\nad  24 12e";
    Pattern p = Pattern.compile("(?<=\\[aaa\\]).*?(?=\\[bbb\\])", Pattern.DOTALL);
    Matcher m = p.matcher(str);
    m.find();
    System.out.println(m.group());输出:
    asd asda 123 eee
    add qq 23 ooddsa dwdq asda