-->

基于PHP中位数分割字符串数组? [关闭](Splitting string array bas

2019-08-05 03:42发布

我有一个字符串

 $str = "101WE3P-1An Electrically-Small104TU5A-3,Signal-Interference Duplexers Gomez-GarciaRobertoTU5A-3-01"

我想通过数字来拆分此字符串,如:“101WE3P-1AN ......”应该是第一要素,‘104TUA ......’应该是第二个元素?

有人给我写了下面的代码在我的前面的问题的preg_match来匹配连续三个数字的字符串? 一些小分钟前:

$result = preg_split('/^\d{3}$/', $page, -1, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY);

基线是我想匹配的3 digited号,接着是没有任何资本的,其次是任何东西,包括\ t? 提前致谢。

Answer 1:

你可以告诉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标志的使用,因为该字符串的最开始也是一个点,有三个数字,所以空分发生在这里。 我们可能会改变不字符串的最开始分裂正则表达式,这将使这一点更难以在一目了然的了解,而标志是很清楚的。



Answer 2:

我想比赛,而不是分裂

preg_match_all('/^(\d{3}.*?)*$/', $str, $matches);
var_dump($matches);

似乎得到正确的结果,为您的样品



文章来源: Splitting string array based upon digits in php? [closed]