沃梦达 / 编程问答 / php问题 / 正文

在php中根据数字拆分字符串数组吗?

Splitting string array based upon digits in php?(在php中根据数字拆分字符串数组吗?)

本文介绍了在php中根据数字拆分字符串数组吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个字符串

 $str = "101WE3P-1An Electrically-Small104TU5A-3,Signal-Interference Duplexers Gomez-GarciaRobertoTU5A-3-01"
我想用数字拆分这个字符串,例如:"101WE3P-1AN..."应该是第一个元素,"104TUA..."应为第二个元素?

几分钟前有人在my previous question preg_match to match substring of three numbers consecutively?中给我写了以下代码:

$result = preg_split('/^d{3}$/', $page, -1, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY);
基线是我要匹配三位数字,后跟任何一个大写字母,后跟任何包括?提前谢谢。

推荐答案

您可以使用lookahead assertion命令preg_split()在字符串中后面跟三位数字的任意位置拆分。

$str = "101WE3P-1An Electrically-Small104TU5A-3,Signal-Interference Duplexers Gomez-GarciaRobertoTU5A-3-01";
$result = preg_split('/(?=d{3})/', $str, -1, PREG_SPLIT_NO_EMPTY);

var_export($result);

给出以下数组:

array (
  0 => '101WE3P-1An Electrically-Small',
  1 => '104TU5A-3,Signal-Interference Duplexers Gomez-GarciaRobertoTU5A-3-01',
)

使用PREG_SPLIT_NO_EMPTY标志是因为字符串的最开始处也是有三位数的点,因此这里会发生空拆分。我们可以将正则表达式更改为在字符串的最开始不拆分,但这会使它更难一目了然,而标志非常清楚。

这篇关于在php中根据数字拆分字符串数组吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本文标题为:在php中根据数字拆分字符串数组吗?

基础教程推荐