现有文本文件内容:
[HEAD]
01|20131111|E32423|324324|983|983|459
[AAA]
110101|34234|3412134|111
110102|33534|343255|222
[BBB]
110101|34234|3412134|111
110102|33534|343255|222
[SITRBEND]通过字符流获取后得到以下字符串:
[HEAD]\r\n01|20131111|E32423|324324|983|983|459\r\n[AAA]\r\n110101|34234|3412134|111110102|33534|343255|222\r\n[BBB]\r\n110101|34234|3412134|111\r\n110102|33534|343255|222\r\n[SITRBEND]\r\n将该字符串按标签用正则表达式分段为:
string[0]=[HEAD]\r\n01|20131111|E32423|324324|983|983|459\r\n
string[1]=[AAA]\r\n110101|34234|3412134|111110102|33534|343255|222\r\n
string[2]=[BBB]\r\n110101|34234|3412134|111\r\n110102|33534|343255|222\r\n
string[3]=[SITRBEND]\r\n

解决方案 »

  1.   


    public class StringTest { public static void main(String[] args) {
    try {
    FileReader fr = new FileReader(new File("/Users/user/Documents/workspacexone/Test/src/com/withiter/csdn/test/1.txt"));
    BufferedReader br = new BufferedReader(fr);
    String s = null;
    StringBuilder sb = new StringBuilder("");
    int i = 0;
    while(( s = br.readLine())!=null){
    if(s.contains("[")){
    sb.append("\r\nstring["+i+++"]").append(s);
    }else{
    sb.append(s);
    }
    }
    System.out.println(sb.toString());
    } catch (FileNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();


    }}
      

  2.   


    public static void main(String[] args) {
    String str = "[HEAD]\r\n01|20131111|E32423|324324|983|983|459\r\n[AAA]\r\n110101|34234|3412134|111110102|33534|343255|222\r\n[BBB]\r\n110101|34234|3412134|111\r\n110102|33534|343255|222\r\n[SITRBEND]\r\n";
    String arr[] = str.split("(?<!^)(?=\\[.*?\\])");
    for(int i=0;i<arr.length;i++){
    System.out.println(">>>>>>>>>>>>>>>>>>>>>>");
    System.out.println(arr[i]);
    }
    }
      

  3.   

    String regex="(?s)(\\[\\w+?\\].*)";