Я заметил, что ваш текст может иметь фрагменты, которые не могут быть покрыты вашим исходным шаблоном регулярного выражения.
Это 18/07/2011 I1 04101
, 12/07/2011 I1 02410 9.501,60
, 15/07/2011 I1 02522 280,93
и некоторые другие.
Как вы можете видеть, между диапазоном дат и нужным номером может быть алфавитно-цифровая последовательность (два символа/цифры). Итак, измените свой рисунок, как будет показано ниже:
Для демонстрации я выведу только часть вашего последнего текста (весь текст довольно большой). Эта часть содержит 4 совпадения номера 02410
.
var text = "AUGUSTO PERES FILHO 180.87386.99-5 23/10/2006 01 02410 6.488,00 0,00 0,00 406,09 0,00 0,00 ANTONIO CARLOS BAGNATORI FERNANDES 124.79898.68-9 19/08/2008 01 02522 4.730,15 0,00 0,00 406,09 0,00 0,00 ANTONIO VALDECIR ROSSI 106.37070.87-6 03/01/2005 01 04101 7.003,00 3.450,50 0,00 406,09 0,00 0,00 ANUBIA MARIA DE OLIVEIRA RODRIGUES 123.88469.32-7 03/11/2010 01 03548 3.078,53 0,00 0,00 338,63 0,00 0,00 ARAI DE OLIVEIRA RODRIGUES 207.26620.55-0 28/11/2006 01 03548 2.331,09 0,00 0,00 256,41 0,00 0,00 ARIANE ANGELO DA SILVA 135.67665.77-3 09/02/2011 01 04223 1.349,00 0,00 0,00 121,41 0,00 0,00 AUDREY DOS SANTOS 200.30943.45-5 21/12/2009 01 04110 1.935,00 0,00 0,00 212,85 0,00 0,00 BARBARA CRISTINA PEREIRA ASSUNCAO MAIORI 132.48719.81-7 03/05/2010 01 02524 2.255,91 0,00 0,00 248,15 0,00 0,00 BIANCA DA COSTA SANTOS 207.86622.17-7 01/12/2010 01 04110 1.636,68 0,00 0,00 147,30 0,00 0,00 BRUNA ALINE MORIBE 132.04120.89-8 16/02/2009 01 02410 3.421,00 0,00 0,00 376,31 0,00 0,00 BRUNA D ANDREA 133.71271.77-2 08/05/2008 01 04110 1.870,00 0,00 0,00 205,70 0,00 0,00 ,MINISTÉRIO DO TRABALHO E EMPREGO - MTE MINISTÉRIO DA FAZENDA - MF DATA: 22/01/2016 GFIP - SEFIP 8.40 (22/03/2012) TABELAS 31.0 (25/01/2012) HORA: 18:42:37 PÁG : 0004/0034 RELAÇÃO DOS TRABALHADORES CONSTANTES NO ARQUIVO SEFIP MODALIDADE : 9-CONFIRMAÇÃO INFORMAÇÕES ANTERIORES - REC/DECL AO FGTS E DECL À PREVIDÊNCIA EMPRESA: CVC BRASIL OPERADORA E AGENCIA DE VIAGEN INSCRIÇÃO: 10.760.260/0001-19 COMP: 07/2011 COD REC:115 COD GPS: 2100 FPAS: 515 OUTRAS ENT: 0115 SIMPLES: 1 RAT: 1.0 FAP: 0.50 RAT AJUSTADO: 0.50 TOMADOR/OBRA: INSCRIÇÃO: NOME TRABALHADOR PIS/PASEP/CI ADMISSÃO CAT OCOR DATA/COD MOVIMENTAÇÃO CBO REM SEM 13º SAL REM 13ºSAL BASE CÁL 13ºSAL PREV SOC CONTRIB SEG DEVIDA DEPÓSITO JAM BASE CÁL PREV SOCIAL BRUNA MARQUES 133.08610.89-1 01/09/2010 01 01/07/2011 J 04110 410,79 619,46 619,46 82,41 0,00 0,00 BRUNO ALTINO SANTANA DOS SANTOS 161.17769.57-2 03/02/2011 01 04223 1.412,26 0,00 0,00 127,10 0,00 0,00 BRUNO ROSOLEM DOS SANTOS 131.85360.89-2 01/04/2008 01 02410 2.140,00 12/07/2011 I1 02410 9.501,60";
var matches = text.match(/\s(?:\d{2}\/\d{2}\/\d{4})\s(?:[a-zA-Z0-9]{2})(?:[\d\s\w.,]+)?\s(02410)\s(?:[\d.,]+)/gim);
console.log(matches.length);
// the output: 4
https://jsfiddle.net/jfqf4vb5/
А вот реальный пример с исходным текстом:
http://regexr.com/3cnia
Как ваш тестовый пример отражает то, что «он работает»? Я вижу только регулярное выражение и тестовый текст RegExr по умолчанию. Нет совпадений. –
Кроме того, вы уверены, что диапазон цифр? Последний из них - «26 +», который соответствовал бы 26, но также 266 или 2666666. –
Хороший момент Брэм Ванрой, я не поймал эту проблему. –