我有几千个文本文件要解析,它是一个遵循某种模式的产品目录。
它有两个序列号,其中一个我把整个文本分割成一个数组,每个关键字都是一个产品。
问题是我在PrimgSRead中使用的系列产品从产品中删除,我需要它。
这里有一个原始产品:

1532.000028-01532.213.00010875-8
TRES ANÉIS, DOIS PENDENTES, DOIS BRINCOS, SENDO UM
COM
TARRACHA DE METAL NÃO NOBRE, DE: OURO, OURO BRANCO BAIXO;
CONTÉM: diamantes, pérola cultivada, pedra, massa; CONSTAM: amassada(s),
incompleta(s), PESO LOTE: 13,50G (TREZE GRAMAS E CI NQUENTAR$ 901,00
Valor Grama: 66,74

第一个数字是两个序列,由于pdf解析器的缺陷,它们粘在一起。
下面是我用来将数组拆分为产品的regex:
$texto = preg_split("/([0-9]{4}[.][0-9]{6}[-][0-9]{1})+/",$texto);

输出:
1532.213.00010875-8
TRES ANÉIS, DOIS PENDENTES, DOIS BRINCOS, SENDO UM
COM
TARRACHA DE METAL NÃO NOBRE, DE: OURO, OURO BRANCO BAIXO;
CONTÉM: diamantes, pérola cultivada, pedra, massa; CONSTAM: amassada(s),
incompleta(s), PESO LOTE: 13,50G (TREZE GRAMAS E CI NQUENTAR$ 901,00
Valor Grama: 66,74

正如你所看到的,第一个序列从输出中删除。我需要它。如何分割这些产品,保持两个数组?

最佳答案

将捕获组更改为lookahead,如下所示:

$texto = preg_split("/(?=[0-9]{4}[.][0-9]{6}[-][0-9]{1})/",$texto);

10-07 17:35