从文本文件中读取文本,并与字段名称及其值一起逐行显示

时间:2018-10-26 15:35:11

标签: java

我有这个文本文件:

1             Juan García12-11-2016                               Reparación caldera 110.50
2             Eva Blasco05-10-2016                                     Fuga de agua 200.00
3           Rosa Carreras23-01-2016                                  Cambio de filtro    0.75

我需要在控制台上这样显示它:

Code: 1, Client: Juan García, Date: 12-11-2016, Concept: Reparación caldera, Price: 110.50

我试图用正则表达式来做,但是我通常会出错并且我没有时间正确学习它。

Pattern p = Pattern.compile(
            "^([\\d.]+)\\s+(\\d+)\\s+([\\d.]+)\\s+(.+?)\\s+\\((\\d+)\\)(?:\\s+\\{([^{}]+))?"
    );
    Matcher m = p.matcher("");
    Scanner sc = new Scanner(new File("C:\\Temp\\factura.txt"));
    while (sc.hasNextLine())
    {
        String s = sc.nextLine();
        if (m.reset(s).find())
        {
            System.out.printf("%s %8s %6s%n%s (%s) %s%n%n",
                    m.group(1), m.group(2), m.group(3), m.group(4), m.group(5),
                    m.start(6) != -1 ? m.group(6) : "");
        }
    }

我尝试使用正则表达式和子字符串进行一些操作,但是我无法使其正常工作,为此我会发疯。

任何帮助都很好。

1 个答案:

答案 0 :(得分:1)

尝试一下。

requests.post(..., json=jsonPrep, ...)