Php 使用preg_Split拆分字符串

Php 使用preg_Split拆分字符串,php,split,preg-split,Php,Split,Preg Split,我正在寻找一种方法,使用正则表达式在每组数字后拆分以下字符串。我是个新手,我很难理解如何使用正确的正则表达式格式 $string = '521158525 Interest Being Subordinated: 521855248 Benefiting Interest: 511589923'; preg_split("/([0-9])/", $string, 0, PREG_SPLIT_NO_EMPTY); 可能需要在函数调用中再添加一个标志PREG\u SPLIT\

我正在寻找一种方法,使用正则表达式在每组数字后拆分以下字符串。我是个新手,我很难理解如何使用正确的正则表达式格式

$string = '521158525 Interest Being Subordinated: 521855248 Benefiting Interest: 511589923';

preg_split("/([0-9])/", $string, 0, PREG_SPLIT_NO_EMPTY);

可能需要在函数调用中再添加一个标志
PREG\u SPLIT\u DELIM\u CAPTURE

<?php
$string = '521158525 Interest Being Subordinated: 521855248 Benefiting Interest: 511589923';

$res = preg_split("/:?\s*([0-9]+)\s?/", $string, 0, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE);

var_export($res);

若要在每组数字之后分割,可以使用模式仅匹配单词边界之间的数字

然后使用
\K
忘记匹配的内容,直到目前为止,然后匹配可选的水平空白字符,以在分割后不获取尾随空白

$string = '521158525 Interest Being Subordinated: 521855248 Benefiting Interest: 511589923';
$result = preg_split(
    "\b\d+\b\h*\K",
    $string,
    0,
    PREG_SPLIT_NO_EMPTY
);

print_r($result);
输出

Array
(
    [0] => 521158525
    [1] => Interest Being Subordinated: 521855248
    [2] => Benefiting Interest: 511589923
)

请发布您想要的结果我如何保留文本并在数字后拆分?例如:下属利息:521855248受益利息:511589923完美!谢谢你的邀请help@JohnColeman如果它有助于解决问题,请单击✓ 在答案的左边。请注意,接受一个解决方案会得到2。
Array
(
    [0] => 521158525
    [1] => Interest Being Subordinated: 521855248
    [2] => Benefiting Interest: 511589923
)