String yourText="隧道局蜂蜡哭诉机{[你……]}阿里发送{[我……]}理解力抗倒伏嘎{[她……]}进口机旅客";
    Pattern p1 = Pattern.compile("\\{\\[[.[^\\]]]*\\]\\}");
    Matcher m1 = p1.matcher(yourText);
    while (m1.find()) {
      System.out.println(m1.group().trim());
    }

解决方案 »

  1.   

    public void getString(String test) {
            StringBuffer info = new StringBuffer();
            while (test.indexOf("]}") != -1) {
                int start = test.indexOf("{[");
                int end = test.indexOf("]}");
                String oldString = test.substring(start + 2, end);
                test = test.substring(end + 2);
                info.append(oldString + "\n");
            }
            System.out.println(info.toString());
        }
      

  2.   

    正则表达式:感谢 CoolAbu(阿卜-Never Stop(★★★★),但不知道为什么你的代码什么也不输出呢?您再帮我看看,我也再研究一下。字符串方法:感谢OnlyLikeJava(甜咖啡)。同时也感谢大家帮我顶等我知道了正则表达式方法后,马上结贴,虽然分少,但是态度端正。
      

  3.   

    我这样写的,就正确了,您看看是怎么回事呢
    Pattern p1 = Pattern.compile("\\{\\[[^\\]]?[^\\}]?.*?\\]\\}"); 加了几个 ? 问号
      

  4.   

    String A = ("隧道局蜂蜡哭诉机{[你……]}阿里发送{[我……]}理解力抗倒伏嘎{[她……]}进口机旅客");    String[] temp = A.split("["); 然后自己想办法再取
      

  5.   

    我这样写的,就正确了,您看看是怎么回事呢
    Pattern p1 = Pattern.compile("\\{\\[[^\\]]?[^\\}]?.*?\\]\\}"); 加了几个 ? 问号
      

  6.   

    import java.util.regex.Pattern;
    import java.text.DecimalFormat;
    import java.util.regex.Matcher;
    public class PatternTest {
    public static void main(String[] args) {
    String yourText="隧道局蜂蜡哭诉机{[{[…]}阿里发送{[我……]}理解力抗\r\n倒伏嘎{[她……]}进口机旅客";
    Pattern p1 = Pattern.compile("\\{\\[[^\\]]?[^\\}]?.*?\\]\\}");  //正确
    //Pattern p1 = Pattern.compile("\\{\\[.*?\\]\\}");//也对
    Matcher m1 = p1.matcher(yourText);
    while (m1.find()) {
      System.out.println(m1.group().trim());
    }
    }
    }