【求助】使用 Emacs 格式化文本

各位大佬好,请不吝赐教,先行谢过!

有如下格式的题库,大约有一千道题,有单项选择题、多项选择题和判断题。

[T]A-A-A-001
题干1。
A、选项一
B、选项二
C、选项三
D、选项四
[T/]
[D]A[D/]

[T]A-A-A-001
题干2。
A、选项一
B、选项二
C、选项三
D、选项四
[T/]
[D]A,C[D/]

[T]A-A-A-002
判断题1。
[T/]
[D]√[D/]

[T]A-A-A-002
判断题2。
[T/]
[D]×[D/]

想将此题库格式化成下列样式输出:

一、单项选择题
1.AAA001 题干1。
A、选项一
B、选项二
C、选项三
D、选项四

二、多项选择题
1.AAA001 题干2。
A、选项一
B、选项二
C、选项三
D、选项四

三、判断题
1.AAA002 判断题1。

2.AAA002 判断题2。

答案
一、单项选择题
1.A
二、多项选择题
1.A,C
三、判断题
1.✓;2.×

这个最好还是用代码解决,匹配的话可以用正则,可以参考下面这个正则

(with-current-buffer "qwer"
  (save-excursion
    (goto-char (point-min))
    (while (re-search-forward "\\[T\\]\\(A-A-A-\\)\\(00[[:digit:]]\\)\n\\(\\(.\\|\n\\)+?\\)\\[T/\\]\n\\[D\\]\\(.*\\)\\[D/\\]" nil t)
      ;; 1 A-A-A-
      ;; 2 00?
      ;; 3 整个题目
      ;; 5 答案
      ;; 这里就是message输出题目
      (message (match-string-no-properties 3)))
    ))