使用 Ruby,我正在尝试解析一些文档,在这些文档中我需要拆分文本块,每个文本块都有一个标题,后跟一个未知长度的文本,并将它们推送到一个数组;
SECTION 1. A HEADING
Some undetermined length of text,
which can be multiple lines and paragraphs.
SECTION 2. ANOTHER HEADING
Another big block of text.
应该成为
["SECTION 1. A HEADING
Some undetermined length of text,
which can be multiple lines and paragraphs.",
"SECTION 2. ANOTHER HEADING
Another big block of text."]
我可以只使用string.split(/\n\n\n/)
,但我想要更具体的东西,因为我不能保证每个部分后面都有两个空行。更多的实验使我想到了这一点;
string.split(/(?:^|\n)(SECTION.+\n)/).each do |s|
sections << s
end
但我必须再次处理输出以获得我需要的东西。
有没有什么方法可以在不需要多次通过的情况下完成这项工作?
谢谢你的帮助。