使用数组

时间:2015-11-07 21:29:47

标签: javascript regex node.js pdf

我有一项涉及正则表达式的挑战性任务。至少我觉得很有挑战性。

我从PDF中提取了以下字符串(文本):http://www.regexr.com/3c5ei

这是软件每月向公司生成的文本。问题是,它有公司大量生产这些文件,因此有PDF文件,其中包含100个这样的文本。

文本布局始终相同,更改的信息包括日期,名称,数字,值等。

我正在尝试获取一个包含500个文档的PDF文件(500个文本具有相同的掩码/布局,具有相同的值)并分成几个数组,每个文档的matriz。理解?

例如,如果我有两个文件到这个PDF,我想交两个matriz。

为了能够做到这一点,我需要一个非常复杂的正则表达式,然后你进入,真棒人。

我已经能够删除PDF文本,我现在正在尝试创建正确的模式来提取这些文本。

例如,在以下场景中:我在本文中有两个文档:http://www.regexr.com/3c5el

他们是平等的,

开头是:MINISTÉRIO DO TRABALHO 结尾是:Z6: 0

然而正如我先前所说,它并不总是相同的开始和结束。

我设法找到了一个标准:

在文本开头,以下句子:RELAÇÃO DOS TRABALHADORES CONSTANTES NO ARQUIVO SEFIP 最后,在开始另一个文本之前,使用以下句子:RESUMO DAS INFORMAÇÕES À PREVIDÊNCIA SOCIAL CONSTANTES NO ARQUIVO SEFIP

文件地图将是:

INFORMATION HERE FILE 1
RELAÇÃO DOS TRABALHADORES CONSTANTES NO ARQUIVO SEFIP
OTHER INFORMATION FILE 1
OTHER INFORMATION FILE 1
OTHER INFORMATION FILE 1
RESUMO DAS INFORMAÇÕES À PREVIDÊNCIA SOCIAL CONSTANTES NO ARQUIVO SEFIP
OTHER INFORMATION FILE 1
FILE INFORMATION HERE 2
RELAÇÃO DOS TRABALHADORES CONSTANTES NO ARQUIVO SEFIP
OTHER INFORMATION FILE 2
OTHER INFORMATION FILE 2
OTHER INFORMATION FILE 2
RESUMO DAS INFORMAÇÕES À PREVIDÊNCIA SOCIAL CONSTANTES NO ARQUIVO SEFIP
OTHER INFORMATION FILE 2

我希望您的帮助能够捕获该文本并打破正确文档的数量。

我能够创建以下正则表达式,但不是很好:

^(.*?RELAÇÃO DOS TRABALHADORES CONSTANTES NO ARQUIVO SEFIP.*?RESUMO DAS INFORMAÇÕES À PREVIDÊNCIA SOCIAL CONSTANTES NO ARQUIVO SEFIP.*?(RELAÇÃO DOS TRABALHADORES CONSTANTES NO ARQUIVO SEFIP)|.*?)

但是效果并不好......这对我的知识来说太复杂了。

由于

1 个答案:

答案 0 :(得分:0)

  

在文本开头,以下句子:RELAÇÃO DOS TRABALHADORES CONSTANTES NO ARQUIVO SEFIP最后,在开始另一个文本之前,以下句子:RESUMO DAS INFORMAÇÕES À PREVIDÊNCIA SOCIAL CONSTANTES NO ARQUIVO SEFIP

[\s\S]*?之间的所有内容匹配,因为它也会匹配换行符。并使用/g修饰符来获取所有匹配项。

<强>正则表达式

/RELAÇÃO DOS TRABALHADORES CONSTANTES NO ARQUIVO SEFIP([\s\S]*?)RESUMO DAS INFORMAÇÕES À PREVIDÊNCIA SOCIAL CONSTANTES NO ARQUIVO SEFIP/g

<强>代码

var regex = /RELAÇÃO DOS TRABALHADORES CONSTANTES NO ARQUIVO SEFIP([\s\S]*?)RESUMO DAS INFORMAÇÕES À PREVIDÊNCIA SOCIAL CONSTANTES NO ARQUIVO SEFIP/g
var text = `
INFORMATION HERE FILE 1
RELAÇÃO DOS TRABALHADORES CONSTANTES NO ARQUIVO SEFIP
OTHER INFORMATION FILE 1
OTHER INFORMATION FILE 1
OTHER INFORMATION FILE 1
RESUMO DAS INFORMAÇÕES À PREVIDÊNCIA SOCIAL CONSTANTES NO ARQUIVO SEFIP
OTHER INFORMATION FILE 1
FILE INFORMATION HERE 2
RELAÇÃO DOS TRABALHADORES CONSTANTES NO ARQUIVO SEFIP
OTHER INFORMATION FILE 2
OTHER INFORMATION FILE 2
OTHER INFORMATION FILE 2
RESUMO DAS INFORMAÇÕES À PREVIDÊNCIA SOCIAL CONSTANTES NO ARQUIVO SEFIP
OTHER INFORMATION FILE 2
`;
var m;
var num = 0;
 
while ((m = regex.exec(text)) !== null) {
    num++;
    document.write("<h3>Match " + num + "</h3><pre>" + m[1] + "</pre>");
}