-3

我有一个字符串AB0512CD123456并使用 preg 匹配如何将其转换为

Array[0]='AB';
Array[1]='05';
Array[2]='12CD12';
Array[3]='3456';

那是大小为 2 的第一个元素,然后是 2、6、4 等。输入字符串可能是动态的。

4

3 回答 3

9

如果输入字符串长度是固定的,那么您只需要sscanf()

var_dump(sscanf('AB0512CD123456', '%2s%2s%6s%4s'));

输出:

array(4) {
  [0]=>
  string(2) "AB"
  [1]=>
  string(2) "05"
  [2]=>
  string(6) "12CD12"
  [3]=>
  string(4) "3456"
}
于 2013-11-14T07:03:36.167 回答
0

适用于任何通用模式

这个例子利用sscanfPaulo Freitas

<?php
$str="AB0512CD123456";
$pattern="2,3,4,5"; // Your pattern
$pattern=explode(",",$pattern);

foreach($pattern as $k=>$v)
{
$newpattern.="%".$v."s";
}
var_dump(sscanf($str,$newpattern));
于 2013-11-14T07:16:45.637 回答
0

更好地使用这个:

    $str="AB0512CD123456";
$Array[0] = substr($str, 0,2);
$Array[1] = substr($str, 2,2);
$Array[2] = substr($str, 4,6);
$Array[3] = substr($str, 10,4);
于 2013-11-14T07:03:32.653 回答