文件如下所示,我想提取的字符为如下所示:3-113-190-01=1    ABS1699     2.732880请问如何处理?
2007/10/19 10:38:14 [NORMAL ] ID:0400011340 开始 
2007/10/19 10:38:14 [ERROR  ] ID:0200000200 物料基础数据未登录。 itm_cd=JPC0656
2007/10/19 10:38:14 [ERROR  ] ID:0200000200 物料基础数据未登录。 itm_cd=JPOM0297
2007/10/19 10:38:14 [ERROR  ] ID:0200000200 物料基础数据未登录。 itm_cd=JPOM0330
2007/10/19 10:38:14 [ERROR  ] ID:0200000200 物料基础数据未登录。 itm_cd=JPOM0395
2007/10/19 10:38:14 [ERROR  ] ID:0200000200 物料基础数据未登录。 itm_cd=LW30563-001
2007/10/19 10:38:14 [ERROR  ] ID:0200000200 物料基础数据未登录。 itm_cd=X-2177-179-01
2007/10/19 10:38:18 [WARNING] ID:0400009110 「中国語名」完成した3-113-190-01=1の作業指示番号:1010869 に出庫すべき部材のABS1699が出庫可能状態にありません。払出数量    2.732880 出庫可能数    0.000000 在庫が足りません。 
2007/10/19 10:38:18 [WARNING] ID:0400009110 「中国語名」完成した3-093-828-01の作業指示番号:1011623 に出庫すべき部材のPC0565が出庫可能状態にありません。払出数量   12.684940 出庫可能数    0.000000 在庫が足りません。 
2007/10/19 10:38:18 [WARNING] ID:0400009130 「中国語名」完成した2-698-697-01=Wの納入番号:1001834 行番号:3に支給すべき部材のPOM0048が出庫可能状態にありません。払出数量   12.173789 出庫可能数    0.000000 在庫が足りません。 
2007/10/19 10:38:18 [WARNING] ID:0400009130 「中国語名」完成した2-698-698-01=Wの納入番号:1001834 行番号:4に支給すべき部材のPOM0048が出庫可能状態にありません。払出数量   74.376000 出庫可能数    0.000000 在庫が足りません。 
2007/10/19 10:38:18 [WARNING] ID:0400009110 「中国語名」完成したJ3-093-821-01-1の作業指示番号:1010435 に出庫すべき部材のJPC0621が出庫可能状態にありません。払出数量    9.288000 出庫可能数    0.000000 在庫が足りません。 
2007/10/19 10:38:18 [WARNING] ID:0400009110 「中国語名」完成したJ2-666-388-02-1の作業指示番号:1010558 に出庫すべき部材のJPC0619が出庫可能状態にありません。払出数量    1.470800 出庫可能数    0.000000 在庫が足りません。 
2007/10/19 10:38:18 [WARNING] ID:0400009130 「中国語名」完成した2-698-692-02=Wの納入番号:1001834 行番号:2に支給すべき部材のPOM0330が出庫可能状態にありません。払出数量   30.586575 出庫可能数    0.000000 在庫が足りません。 
2007/10/19 10:38:18 [WARNING] ID:0400009130 「中国語名」完成した2-698-698-01=Wの納入番号:1001834 行番号:4に支給すべき部材のPOM0048が出庫可能状態にありません。払出数量   62.639054 出庫可能数    0.000000 在庫が足りません。 
2007/10/19 10:38:18 [WARNING] ID:0400009130 「中国語名」完成した2-698-691-01=Wの納入番号:1001834 行番号:1に支給すべき部材のPOM0330が出庫可能状態にありません。払出数量  178.010925 出庫可能数    0.000000 在庫が足りません。 
2007/10/19 10:38:18 [WARNING] ID:0100081610 由于出库指令分配的取消,库存分配数量不足。取消数量(1200.000000)库存分配数量(0.000000)  wk_ins_no=1011012 prt_itm_cd=X-2179-167-1 iss_ins_no=1029092 iss_ins_lno=2 itm_cd=3-197-783-01
2007/10/19 10:38:18 [WARNING] ID:0100081610 由于出库指令分配的取消,库存分配数量不足。取消数量(1200.000000)库存分配数量(0.000000)  wk_ins_no=1011012 prt_itm_cd=X-2179-167-1 iss_ins_no=1029092 iss_ins_lno=1 itm_cd=3-197-782-01
2007/10/19 10:38:18 [WARNING] ID:0100081610 由于出库指令分配的取消,库存分配数量不足。取消数量(1040.000000)库存分配数量(0.000000)  wk_ins_no=1011410 prt_itm_cd=3-197-768-01 iss_ins_no=1031861 iss_ins_lno=1 itm_cd=3-197-768-01=1
2007/10/19 10:38:18 [WARNING] ID:0400009110 「中国語名」完成したJ2-666-397-02-1の作業指示番号:1010405 に出庫すべき部材のJPC0619が出庫可能状態にありません。払出数量    5.364000 出庫可能数    0.000000 在庫が足りません。 
2007/10/19 10:38:18 [WARNING] ID:0400009110 「中国語名」完成した3-093-828-01の作業指示番号:1011623 に出庫すべき部材のPC0565が出庫可能状態にありません。払出数量   17.250000 出庫可能数    0.000000 在庫が足りません。 
2007/10/19 10:38:19 [WARNING] ID:0400009130 「中国語名」完成した2-698-692-02=Wの納入番号:1001834 行番号:2に支給すべき部材のPOM0330が出庫可能状態にありません。払出数量  137.376000 出庫可能数    0.000000 在庫が足りません。 
2007/10/19 10:38:19 [WARNING] ID:0400009090 警告结束 正常件数->0 错误件数->14 

解决方案 »

  1.   

    3-113-190-01=1    ABS1699     2.732880
    需要这些编码的编号规则,做起来会相对容易一些。如果不知道规则就凭上面的那几条信息,可能会有遗漏。
      

  2.   

    下面的内容复制到一个HTML页面,可以可以获取结果,看看是否是你想要的<script>
    var str="2007/10/19 10:38:14 [NORMAL ] ID:0400011340 开始  "+
    "2007/10/19 10:38:14 [ERROR  ] ID:0200000200 物料基础数据未登录。 itm_cd=JPC0656  "+
    "2007/10/19 10:38:14 [ERROR  ] ID:0200000200 物料基础数据未登录。 itm_cd=JPOM0297  "+
    "2007/10/19 10:38:14 [ERROR  ] ID:0200000200 物料基础数据未登录。 itm_cd=JPOM0330  "+
    "2007/10/19 10:38:14 [ERROR  ] ID:0200000200 物料基础数据未登录。 itm_cd=JPOM0395  "+
    "2007/10/19 10:38:14 [ERROR  ] ID:0200000200 物料基础数据未登录。 itm_cd=LW30563-001  "+
    "2007/10/19 10:38:14 [ERROR  ] ID:0200000200 物料基础数据未登录。 itm_cd=X-2177-179-01  "+
    "2007/10/19 10:38:18 [WARNING] ID:0400009110 「中国語名」完成した3-113-190-01=1の作業指示番号:1010869 に出庫すべき部材のABS1699が出庫可能状態にありません。払出数量    2.732880 出庫可能数    0.000000 在庫が足りません。   "+
    "2007/10/19 10:38:18 [WARNING] ID:0400009110 「中国語名」完成した3-093-828-01の作業指示番号:1011623 に出庫すべき部材のPC0565が出庫可能状態にありません。払出数量   12.684940 出庫可能数    0.000000 在庫が足りません。   "+
    "2007/10/19 10:38:18 [WARNING] ID:0400009130 「中国語名」完成した2-698-697-01=Wの納入番号:1001834 行番号:3に支給すべき部材のPOM0048が出庫可能状態にありません。払出数量   12.173789 出庫可能数    0.000000 在庫が足りません。   "+
    "2007/10/19 10:38:18 [WARNING] ID:0400009130 「中国語名」完成した2-698-698-01=Wの納入番号:1001834 行番号:4に支給すべき部材のPOM0048が出庫可能状態にありません。払出数量   74.376000 出庫可能数    0.000000 在庫が足りません。   "+
    "2007/10/19 10:38:18 [WARNING] ID:0400009110 「中国語名」完成したJ3-093-821-01-1の作業指示番号:1010435 に出庫すべき部材のJPC0621が出庫可能状態にありません。払出数量    9.288000 出庫可能数    0.000000 在庫が足りません。   "+
    "2007/10/19 10:38:18 [WARNING] ID:0400009110 「中国語名」完成したJ2-666-388-02-1の作業指示番号:1010558 に出庫すべき部材のJPC0619が出庫可能状態にありません。払出数量    1.470800 出庫可能数    0.000000 在庫が足りません。   "+
    "2007/10/19 10:38:18 [WARNING] ID:0400009130 「中国語名」完成した2-698-692-02=Wの納入番号:1001834 行番号:2に支給すべき部材のPOM0330が出庫可能状態にありません。払出数量   30.586575 出庫可能数    0.000000 在庫が足りません。   "+
    "2007/10/19 10:38:18 [WARNING] ID:0400009130 「中国語名」完成した2-698-698-01=Wの納入番号:1001834 行番号:4に支給すべき部材のPOM0048が出庫可能状態にありません。払出数量   62.639054 出庫可能数    0.000000 在庫が足りません。   "+
    "2007/10/19 10:38:18 [WARNING] ID:0400009130 「中国語名」完成した2-698-691-01=Wの納入番号:1001834 行番号:1に支給すべき部材のPOM0330が出庫可能状態にありません。払出数量  178.010925 出庫可能数    0.000000 在庫が足りません。   "+
    "2007/10/19 10:38:18 [WARNING] ID:0100081610 由于出库指令分配的取消,库存分配数量不足。取消数量(1200.000000)库存分配数量(0.000000)  wk_ins_no=1011012 prt_itm_cd=X-2179-167-1 iss_ins_no=1029092 iss_ins_lno=2 itm_cd=3-197-783-01  "+
    "2007/10/19 10:38:18 [WARNING] ID:0100081610 由于出库指令分配的取消,库存分配数量不足。取消数量(1200.000000)库存分配数量(0.000000)  wk_ins_no=1011012 prt_itm_cd=X-2179-167-1 iss_ins_no=1029092 iss_ins_lno=1 itm_cd=3-197-782-01  "+
    "2007/10/19 10:38:18 [WARNING] ID:0100081610 由于出库指令分配的取消,库存分配数量不足。取消数量(1040.000000)库存分配数量(0.000000)  wk_ins_no=1011410 prt_itm_cd=3-197-768-01 iss_ins_no=1031861 iss_ins_lno=1 itm_cd=3-197-768-01=1  "+
    "2007/10/19 10:38:18 [WARNING] ID:0400009110 「中国語名」完成したJ2-666-397-02-1の作業指示番号:1010405 に出庫すべき部材のJPC0619が出庫可能状態にありません。払出数量    5.364000 出庫可能数    0.000000 在庫が足りません。   "+
    "2007/10/19 10:38:18 [WARNING] ID:0400009110 「中国語名」完成した3-093-828-01の作業指示番号:1011623 に出庫すべき部材のPC0565が出庫可能状態にありません。払出数量   17.250000 出庫可能数    0.000000 在庫が足りません。   "+
    "2007/10/19 10:38:19 [WARNING] ID:0400009130 「中国語名」完成した2-698-692-02=Wの納入番号:1001834 行番号:2に支給すべき部材のPOM0330が出庫可能状態にありません。払出数量  137.376000 出庫可能数    0.000000 在庫が足りません。   "+
    "2007/10/19 10:38:19 [WARNING] ID:0400009090 警告结束 正常件数- >0 错误件数- >14  "
    var reg=/\d{4}\/\d{1,2}\/\d{1,2}.*?た(([A-Za-z0-9]+-)*\d+=?[A-Za-z0-9]*)の.*?([A-Za-z]+\d{4}).*?(\d+\.\d+)/g;
    var result=new Array();
    var index=0;
    str.replace(reg,function($1,$2,$3,$4,$5){
    result[index]=$2+" "+$4+" "+$5;
    index++;
    });
    for(var i=0;i<result.length;i++){
    document.writeln(result[i]);
    document.writeln("<hr>");
    }
    </script>
      

  3.   

    以目前的这 12 条匹配记录来说,第 1 组:前面都有“「中国語名」完成した”;
    第 2 组:前面有“の”,后面有“が”;
    第 3 组:前面有“払出数量”和若干个空格。若是信息全部都是这种规律的话,解析代码如下:import java.io.BufferedReader;
    import java.io.FileReader;
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.List;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;public class PatternTest { public static void main(String[] args) {
    List<String> list = readFile("data.dat");
    Pattern pattern = Pattern.compile(
    "「中国語名」完成した([0-9A-Z\\-\\=]+).*の([A-Z]{2,3}\\d{4})が.*払出数量\\s*(\\d+\\.\\d{6})"
    );
    Matcher matcher = null;
    for(String str : list) {
    matcher = pattern.matcher(str);
    if(matcher.find()){
    System.out.print(matcher.group(1)+"\t");  // 输出第 1 组数据
    System.out.print(matcher.group(2)+"\t");  // 输出第 2 组数据
    System.out.print(matcher.group(3));       // 输出第 3 组数据
    System.out.println();
    }
    }
    }

    public static List<String> readFile(String filename) {
    List<String> list = new ArrayList<String>();
    BufferedReader br = null;
    try {
    br = new BufferedReader(new FileReader(filename));
    String str = "";
    while((str = br.readLine()) != null) {
    str = str.trim();
    if(str.length() > 0) {
    list.add(str);
    }
    }
    br.close();
    } catch (IOException e) {
    e.printStackTrace();
    }
    return list;
    }
    }
      

  4.   

    to:bao110908 
    火龙果
    非常感谢,此方法可行