如何用任何整数分解字符串?正则表达式?

Col*_*ack 4 php regex preg-split

这似乎必须如此简单,但正则表达式对我来说非常混乱.我正在抓取$ _GET变量,它们看起来像typeX,optionX,groupX等,其中X等于任何正整数.然后我需要将字符串拆分为整数,以便type1变为"type和"1"的数组,但是type10必须成为"type"和"10"不是"type"和"1"和"0"的数组.

我完全不熟悉正则表达式模式,但最终得出结论:

$array = preg_split("#\\d+#", $key, -1, PREG_SPLIT_NO_EMPTY);
print_r($array);
Run Code Online (Sandbox Code Playgroud)

但它只是从末尾删除了数字而不是将字符串拆分为两个数组,如结果所示:

Array ( [0] => type )
Run Code Online (Sandbox Code Playgroud)

另外,我不确定这是否会将数字10进一步分为1和0,这是我不想要的.我觉得这可能是一个令人难以置信的简单解决方案,但我在这里旋转.

Mar*_*cus 13

您应该使用该PREG_SPLIT_DELIM_CAPTURE标志来捕获您进行拆分的组.这是一个例子:

<?php

$key= "group12";
$pattern = "/(\d+)/";

$array = preg_split($pattern, $key, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE);
print_r($array);

?>
Run Code Online (Sandbox Code Playgroud)

请注意,您使用|"按位或"运算符组合了多个标志.

输出:

Array
(
    [0] => group
    [1] => 12
)
Run Code Online (Sandbox Code Playgroud)