加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – preg_split没有删除搜索模式

发布时间:2020-12-13 21:52:33 所属栏目:PHP教程 来源:网络整理
导读:我有一个数千个文本文件要解析,它是一个遵循某种模式的产品目录. 它有两个序列号,其中一个我将整个文本分成一个数组,每个键都是一个产品. 问题是我在preg_split中使用的序列从产品中删除了,我需要它. 这是一个原始产品: 1532.000028-01532.213.00010875-8TR
我有一个数千个文本文件要解析,它是一个遵循某种模式的产品目录.

它有两个序列号,其中一个我将整个文本分成一个数组,每个键都是一个产品.

问题是我在preg_split中使用的序列从产品中删除了,我需要它.

这是一个原始产品:

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,74

如您所见,第一个序列从输出中删除.我需要它.如何拆分这些产品,同时保留两个阵列?

解决方法

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读