用文本文件的某些部分替换字符串

时间:2017-04-04 22:40:18

标签: java regex file replace

我想在文件中找到一个带编号的模式(我成功完成),使用该类中的另一个方法(我也成功地将其转换为我想要的数字格式)......

我的问题是我想用以前的数字格式(我不知道如何)替换新的数字格式,并将其写入新文件。

  String INPUT = "D:\\input.txt";
  String OUTPUT = "D:\\output.txt";
  String all = "";
  Pattern regexp = Pattern.compile("\"(\\d{14}.{2}\\d{4})\"");
  try (BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(INPUT), "UTF-8"))) {
        String CurrentLine;
        while ((CurrentLine = in.readLine()) != null) {
            Matcher matcher = regexp.matcher(CurrentLine);
              if (matcher.find()) {
                  String number1 = CurrentLine.substring(10,20);
                  String number2 = CurrentLine.substring(30,40);
                  number1 = convertor(number1);
                  number2 = convertor(number2);
              }
            all = all + sCurrentLine + "\r\n";  \\create output to use for BufferedWriter
        }

BTW上面的代码(很明显)只是我整个代码的一部分。

1 个答案:

答案 0 :(得分:0)

要保存输出,只需在循环结束时执行此操作。

Files.write(Paths.get(OUTPUT), all.getBytes(), StandardOpenOption.CREATE);

matcher对象甚至返回组(\d{14}.{2}\d{4})匹配的位置。我建议仔细检查一下你的代码,以帮助自己。

使用matcher.start(1)获取上一次匹配操作期间组捕获的子序列的起始索引。