有这样一个字符串   "5555521422218155215张三       6546454545645645454548jhgfyioi01李四      897**^^890(*&*7)(*(*9|  #王五#"
这个字符串由   19个数字{A}+中文字符(个数不确定){B}+空格(个数不确定)+22个数字{C}+10个字符(由英文字母和数字组成){D}+中文字符(个数不确定){E}+空格(个数不确定)+任意字符(个数不确定)+#+中文字符(个数不确定){F}+#
把这个字符串的A,B,C,D,E,F提取出来,并在其中加如";",格式如A;B;C;D;E;F  

解决方案 »

  1.   

    //没分哦?? ^_^ String regex = "(\\d{19})([\\u4e00-\\u9fa5]+)\\s+(\\d{22})(\\w{10})([\\u4e00-\\u9fa5]+)\\s+\\p{Graph}*\\s+#([\\u4e00-\\u9fa5]+)#";// 这么写不行,应该怎么写
    String input = "5555521422218155215张三      6546454545645645454548jhgfyioi01李四      897**^^890(*&*7)(*(*9|  #王五#";
    System.out.println(input.replaceAll(regex, "$1;$2;$3;$4;$5;$6"));
      

  2.   


    汗注释掉了
    String regex = "(\\d{19})([\\u4e00-\\u9fa5]+)\\s+(\\d{22})(\\w{10})([\\u4e00-\\u9fa5]+)\\s+\\p{Graph}*\\s+#([\\u4e00-\\u9fa5]+)#";
    String input = "5555521422218155215张三      6546454545645645454548jhgfyioi01李四      897**^^890(*&*7)(*(*9|  #王五#";
    System.out.println(input.replaceAll(regex, "$1;$2;$3;$4;$5;$6"));
      

  3.   

    那如果input="0000019200000000301张三    2009042320090423083915TZCZRYDL01操作员登录                                10  67|********|┃|20090423 ; 张三     ; 1 ; 销售柜               ; 0 ; 星期四 ; 0|#成功#"
    输出的结果就有问题了
      

  4.   

    (0000019200000000301)(张三)    (20090423)(20090423083915)(TZCZRYDL01)(操作员登录)                                10  67|********|┃|20090423 ; 张三    ; 1 ; 销售柜              ; 0 ; 星期四 ; 0|#(成功)#
    其中括号中的内容是我需要的,并用;分隔,麻烦您在给我看看