import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String 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*)";
final String string = "Nr. nota Folha Data pregão\n"
+ "2807356 1 02/03/2020\n"
+ "CLEAR CORRETORA - GRUPO XP\n"
+ "1-BOVESPA C VISTA GERDAU METPN ED N1 100 8,00 800,00 D\n"
+ "1-BOVESPA C VISTA ITAUSAPN EDJ N1 200 12,10 2.420,00 D\n"
+ "1-BOVESPA C VISTA ITAUSAPN EDJ N1 D 500 12,00 6.000,00 D\n"
+ "1-BOVESPA V VISTA ITAUSAPN EDJ N1 D 100 12,11 1.211,00 C\n"
+ "1-BOVESPA V VISTA ITAUSAPN EDJ N1 D 100 12,11 1.211,00 C\n"
+ "Resumo dos Negócios \n"
+ "Debêntures 0,00\n"
+ "Vendas à vista 2.422,00\n"
+ "Compras à vista 9.220,00\n"
+ "Opções - compras 0,00\n"
+ "Opções - vendas 0,00\n"
+ "Operações à termo 0,00\n"
+ "Valor das oper. c/ títulos públ. (v. nom.) 0,00\n"
+ "Valor das operações 11.642,00\n"
+ "Resumo Financeiro \n"
+ "Clearing \n"
+ "Valor líquido das operações 6.798,00 D\n"
+ "Taxa de liquidação 2,83 D\n"
+ "Taxa de Registro 0,00 D\n"
+ "Total CBLC 6.800,83 D\n"
+ "Bolsa \n"
+ "Taxa de termo/opções 0,00 D\n"
+ "Taxa A.N.A. 0,00 D\n"
+ "Emolumentos 0,39 D\n"
+ "Total Bovespa / Soma 0,39 D\n"
+ "Custos Operacionais \n"
+ "\"\" \n"
+ "Taxa Operacional 0,00 D\n"
+ "Execução 0,00 \n"
+ "Taxa de Custódia 0,00 \n"
+ "Impostos 0,00 \n"
+ "I.R.R.F. s/ operações, base R$0,00 0,00 \n"
+ "Outros 0,00 C\n"
+ "Total Custos / Despesas 0,00 D\n"
+ "Nr. nota Folha Data pregão\n"
+ "3408171 1 11/03/2020\n"
+ "CLEAR CORRETORA - GRUPO XP\n"
+ "1-BOVESPA C VISTA VIVER ON NM 100 1,79 179,00 D\n"
+ "Resumo dos Negócios \n"
+ "Debêntures 0,00\n"
+ "Vendas à vista 0,00\n"
+ "Compras à vista 179,00\n"
+ "Opções - compras 0,00\n"
+ "Opções - vendas 0,00\n"
+ "Operações à termo 0,00\n"
+ "Valor das oper. c/ títulos públ. (v. nom.) 0,00\n"
+ "Valor das operações 179,00\n"
+ "Resumo Financeiro \n"
+ "Clearing \n"
+ "Valor líquido das operações 179,00 D\n"
+ "Taxa de liquidação 0,04 D\n"
+ "Taxa de Registro 0,00 D\n"
+ "Total CBLC 179,04 D\n"
+ "Bolsa \n"
+ "Taxa de termo/opções 0,00 D\n"
+ "Taxa A.N.A. 0,00 D\n"
+ "Emolumentos 0,00 D\n"
+ "Total Bovespa / Soma 0,00 C\n"
+ "Custos Operacionais \n"
+ "\"\" \n"
+ "Taxa Operacional 0,00 D\n"
+ "Execução 0,00 \n"
+ "Taxa de Custódia 0,00 \n"
+ "Impostos 0,00 \n"
+ "I.R.R.F. s/ operações, base R$0,00 0,00 \n"
+ "Outros 0,00 C\n"
+ "Total Custos / Despesas 0,00 D\n";
final Pattern pattern = Pattern.compile(regex);
final Matcher matcher = pattern.matcher(string);
while (matcher.find()) {
System.out.println("Full match: " + matcher.group(0));
for (int i = 1; i <= matcher.groupCount(); i++) {
System.out.println("Group " + i + ": " + matcher.group(i));
}
}
}
}
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 Java, please visit: https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html