const regex = /(?:Nr.\s*nota\s*Folha\s*Data\s*preg.o\n(?<numNota>\d+)\s*(?<numFolha>\d+)\s*(?<dataPregao>\d{2}\/\d{2}\/\d{4})\s*(?<corretora>.+)\n(?:1-BOVESPA\s*.*\n)+Resumo\s*dos\s*Neg.cios\s*)/g;
// Alternative syntax using RegExp constructor
// const regex = new RegExp('(?:Nr.\\s*nota\\s*Folha\\s*Data\\s*preg.o\\n(?<numNota>\\d+)\\s*(?<numFolha>\\d+)\\s*(?<dataPregao>\\d{2}\\\/\\d{2}\\\/\\d{4})\\s*(?<corretora>.+)\\n(?:1-BOVESPA\\s*.*\\n)+Resumo\\s*dos\\s*Neg.cios\\s*)', 'g')
const str = `Nr. nota Folha Data pregão
2807356 1 02/03/2020
CLEAR CORRETORA - GRUPO XP
1-BOVESPA C VISTA GERDAU METPN ED N1 100 8,00 800,00 D
1-BOVESPA C VISTA ITAUSAPN EDJ N1 200 12,10 2.420,00 D
1-BOVESPA C VISTA ITAUSAPN EDJ N1 D 500 12,00 6.000,00 D
1-BOVESPA V VISTA ITAUSAPN EDJ N1 D 100 12,11 1.211,00 C
1-BOVESPA V VISTA ITAUSAPN EDJ N1 D 100 12,11 1.211,00 C
Resumo dos Negócios
Debêntures 0,00
Vendas à vista 2.422,00
Compras à vista 9.220,00
Opções - compras 0,00
Opções - vendas 0,00
Operações à termo 0,00
Valor das oper. c/ títulos públ. (v. nom.) 0,00
Valor das operações 11.642,00
Resumo Financeiro
Clearing
Valor líquido das operações 6.798,00 D
Taxa de liquidação 2,83 D
Taxa de Registro 0,00 D
Total CBLC 6.800,83 D
Bolsa
Taxa de termo/opções 0,00 D
Taxa A.N.A. 0,00 D
Emolumentos 0,39 D
Total Bovespa / Soma 0,39 D
Custos Operacionais
""
Taxa Operacional 0,00 D
Execução 0,00
Taxa de Custódia 0,00
Impostos 0,00
I.R.R.F. s/ operações, base R\$0,00 0,00
Outros 0,00 C
Total Custos / Despesas 0,00 D
Nr. nota Folha Data pregão
3408171 1 11/03/2020
CLEAR CORRETORA - GRUPO XP
1-BOVESPA C VISTA VIVER ON NM 100 1,79 179,00 D
Resumo dos Negócios
Debêntures 0,00
Vendas à vista 0,00
Compras à vista 179,00
Opções - compras 0,00
Opções - vendas 0,00
Operações à termo 0,00
Valor das oper. c/ títulos públ. (v. nom.) 0,00
Valor das operações 179,00
Resumo Financeiro
Clearing
Valor líquido das operações 179,00 D
Taxa de liquidação 0,04 D
Taxa de Registro 0,00 D
Total CBLC 179,04 D
Bolsa
Taxa de termo/opções 0,00 D
Taxa A.N.A. 0,00 D
Emolumentos 0,00 D
Total Bovespa / Soma 0,00 C
Custos Operacionais
""
Taxa Operacional 0,00 D
Execução 0,00
Taxa de Custódia 0,00
Impostos 0,00
I.R.R.F. s/ operações, base R\$0,00 0,00
Outros 0,00 C
Total Custos / Despesas 0,00 D
`;
// Reset `lastIndex` if this regex is defined globally
// regex.lastIndex = 0;
let m;
while ((m = regex.exec(str)) !== null) {
// This is necessary to avoid infinite loops with zero-width matches
if (m.index === regex.lastIndex) {
regex.lastIndex++;
}
// The result can be accessed through the `m`-variable.
m.forEach((match, groupIndex) => {
console.log(`Found match, group ${groupIndex}: ${match}`);
});
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for JavaScript, please visit: https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions