我可以用Excel或Regex做到吗?

我有一小行(两列),然后是每行7列的多行。我不知道每个单元格的确切内容,也不知道每个小行后面有多少个大行。

我想要的是将小行移动到以下所有大行的旁边。

我要这个:

title1, title2
bla, wla, bla, tra, bla, vla, bla
bla, wa, bla, bla, sla, bla, pla
bla, wa, sla, na, wla, kla, pla
title3, title4
bla, wa, sla, na, wla, kla, pla
bla, wa, bla, bla, sla, bla, pla
bla, wla, bla, tra, bla, vla, bla
bla, wla, bla, tra, bla, vla, bla
bla, wa, bla, bla, sla, bla, pla
title5, title6
bla, wla, bla, tra, bla, vla, bla
bla, wa, bla, bla, sla, bla, pla
title7, title8
bla, wa, bla, bla, sla, bla, pla
...
...


要成为这个:

title1, title2, bla, wla, bla, tra, bla, vla, bla
title1, title2, bla, wa, bla, bla, sla, bla, pla
title1, title2, bla, wa, sla, na, wla, kla, pla
title3, title4, bla, wa, sla, na, wla, kla, pla
title3, title4, bla, wa, bla, bla, sla, bla, pla
title3, title4, bla, wla, bla, tra, bla, vla, bla
title3, title4, bla, wla, bla, tra, bla, vla, bla
title3, title4, bla, wa, bla, bla, sla, bla, pla
title5, title6, bla, wla, bla, tra, bla, vla, bla
title5, title6, bla, wa, bla, bla, sla, bla, pla
title7, title8, bla, wa, bla, bla, sla, bla, pla
...
...


谢谢大家!

最佳答案

这是一个Java代码,可以实现您想要做的事情。它读取您在上面的问题中提供的输入文件,然后使用基本的解析逻辑,写出所需的格式。逻辑的重点是检查当前行中逗号数量的行。如果仅看到一个逗号,则将缓存该行,该行将在随后的没有单个逗号作为这些行的前缀的行中使用。

public static void main(String[] args) throws SQLException {
    File in = new File("C:\\path\\to\\input.txt");
    File out = new File("C:\\path\\to\\output.txt");
    BufferedReader br = null;
    BufferedWriter bw = null;
    try {
        br = new BufferedReader(new FileReader(in));
        bw = new BufferedWriter(new FileWriter(out));
        String header = "";

        do {
            String line = br.readLine();
            if (line == null) break;
            int numCommas = line.length() - line.replace(",", "").length();
            if (numCommas == 1) {
                header = line;
            }
            else {
                bw.write(header + ", " + line);
                bw.newLine();
            }
        } while (true);
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        try {
            if (br != null) br.close();
            if (bw != null) bw.close();
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }
}


如果您不了解足够的Java来利用它,那么您需要以某种方式弄清楚这一点。这是Java程序所能获得的。

该代码已在IntelliJ上进行了本地测试,似乎正在运行。

09-11 18:43