查找两个字符之间的行,并在记事本++中分隔它们

时间:2018-02-10 16:12:52

标签: regex notepad++

我有一个大文本文件,格式如下

####
Some Question 1
answer 1
####
####
Some Question 2
answer 2
some answer 2
another answer 2
####
####
Some Question 3
answer 3
some answer 3
####

在我的项目中,我需要: 1.找到两个字符之间的行,我已经通过(####)(.+?)(####)找到了它 2.在####之后的第一行末尾加上一个问号 3.在第二行之前和第三行之前加斜杠

得到像这样的结果

Some Question 1 ? answer1
Some Question 2 ? answer 2 / some answer 2 / another answer 2
Some Question 3 ? answer 3 / some answer 3

正如我所提到的,我已经标记了文本并制作了3组\ 1& 3 #### \ 2中间的行,如何分隔这些行并进行所需的更改?

1 个答案:

答案 0 :(得分:0)

我建议你使用从命令行界面启动的脚本,在记事本之外完成这项工作。

如果您的系统上安装了 awk ,请编写以下脚本,例如 script.awk

#!/usr/bin/awk -f

/^####$/  { if (q != "") {
              print q a
            }
            q = "";
            a = "";
            next
          }
# other lines
          { if (q == "") { 
              q = $0 " ? " 
            } else { 
              if (a == "") { 
                a = $0; 
                next
              } else {
                a = a " / " $0 ; 
                next
              }
            }
          }

假设您的输入位于文件 input.txt 中,您可以从发出命令行运行此脚本:

./script.awk input.txt

或:

awk -f script.awk input.txt

我假设您可以在类Unix环境中工作。