使用正则表达式来分隔文本

时间:2016-06-13 17:21:57

标签: javascript regex

我正在处理一个包含1000多个文档的文本文件。大多数文档非常相似,以相同的布局开始和结束。我正在尝试将文本拆分成一个数组,每个项目都是一个文档:

let documents = [
  [], <- doc1
  [], <- doc2
  ....
];

为了达到这个目的,我正在使用一个巨大的正则表达式,它获得了一个文档的总页数(我在第一页中有这个信息),并采取一切=&gt; [\s\S]*?&lt; =直到最后一页。是不是很好,因为有些文档可能没有最后一页,所以捕获两个文档而不是一个。

http://regexr.com/3dk54

这里,正则表达式正在捕获两个文档,但是如果你删除Z6:0你会看到问题。

是否有可能解决这个问题?

感谢。

1 个答案:

答案 0 :(得分:0)

使用简单的正则表达式应该没问题。这里我使用%start%和%end%来分隔每个文档。用你当前的分隔符替换它也应该可以正常工作。

getById(id: string) {
    return this.http.get('someUrl' + id)
        .map((res: Response) => res.json())
        .filter(teacher => teacher.id === id));

如果您的分隔符使用任何特殊字符,请不要忘记使用它们。

修改

"your-whole-document-content".match (/(%start%)(.*?[\n\r]?)*?(%end%)/g)