这看起来一定很简单,但是正则表达式让我非常困惑。我正在获取看起来像 typeX、optionX、groupX 等的 $_GET 变量,其中 X 等于任何正整数。然后我需要在整数处拆分字符串,以便 type1 成为“类型和”1 的数组,但是 type10 必须成为“类型”和“10”而不是“类型”和“1”和“0”的数组。
我完全不熟悉正则表达式模式,但最终想出了:
$array = preg_split("#\\d+#", $key, -1, PREG_SPLIT_NO_EMPTY);
print_r($array);
但它只是从末尾删除了数字,而不是将字符串拆分为两个数组,如结果所示:
Array ( [0] => type )
此外,我不确定这是否会将数字 10 进一步拆分为 1 和 0,我不希望这样。我觉得这可能是一个头脑 NumPy 的简单解决方案,但我在这里原地打转。
最佳答案
您应该使用 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);
?>
请注意,您可以使用 |
“按位或”运算符组合多个标志。
输出:
Array
(
[0] => group
[1] => 12
)
关于php - 如何用任何整数分解字符串?正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7908327/