PHP取前n个字符并从原始字符串中删除

时间:2015-10-22 20:50:47

标签: php string trim substr

假设我们有字符串:

ADJKANKNAKLNKALNFKLANFKLNAKLFNKALN

假设我们需要从字符串ADJKA中取出5个字符,并从现有字符串中删除前5个字符:

NKNAKLNKALNFKLANFKLNAKLFNKALN

PHP中是否有任何功能可以在不使用第二功能的情况下实现这一功能?

2 个答案:

答案 0 :(得分:1)

简单地:

$string = substr_replace($string, '', 0, 5);

我很无聊:

list($five, $string) = preg_split('/(^.{5})/', $string, null,
                                  PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE);

答案 1 :(得分:0)

non-buggy versions of php 中,您可以使用 \K “catch-n-release”前五个字符,并将拆分限制为最多 2 个元素。

代码:(Demo)

$string = 'ADJKANKNAKLNKALNFKLANFKLNAKLFNKALN';

[$first5, $string] = preg_split('~.{5}\K~', $string, 2);

var_export([$first5, $string]);

或者您可以避免 \K 错误并使用后视。

preg_split('~(?<=.{5})~', $string, 2)

输出:

array (
  0 => 'ADJKA',
  1 => 'NKNAKLNKALNFKLANFKLNAKLFNKALN',
)