PHP preg_匹配所有CamelCase,获得前缀和CamelCase元素

PHP preg_匹配所有CamelCase,获得前缀和CamelCase元素,php,multidimensional-array,preg-match-all,prefix,camelcasing,Php,Multidimensional Array,Preg Match All,Prefix,Camelcasing,我试图使用preg_match_all为CamelCase字符串中的各个元素返回一个单独的数组。 在我的示例中,我试图获取一个数组中字符串的前缀,而其他所有内容(字符串的camelcase部分)都被拆分为第二个数组。例如,get_BookGenRetile应该在一个数组中返回get_,另一个数组包含Book、流派和标题。或者,为了进一步演示,post_PersonID将在一个数组中返回post_,另一个数组包含单词ID 我有下面一段代码,可以完成它,但是有点草率。当它返回包含前缀的数组时,该数组

我试图使用preg_match_all为CamelCase字符串中的各个元素返回一个单独的数组。 在我的示例中,我试图获取一个数组中字符串的前缀,而其他所有内容(字符串的camelcase部分)都被拆分为第二个数组。例如,get_BookGenRetile应该在一个数组中返回get_,另一个数组包含Book、流派和标题。或者,为了进一步演示,post_PersonID将在一个数组中返回post_,另一个数组包含单词ID

我有下面一段代码,可以完成它,但是有点草率。当它返回包含前缀的数组时,该数组还包含与CamelCased元素数相等的空白元素数

<?php

$var = "get_BookGenreTitle";

preg_match_all("/(get_|post_)?([A-Z][A-Z0-9]*(?=$|[A-Z][a-z0-9])|[A-Za-z][a-z0-9]+)/", $var, $matches);

print_r($matches);

?>

返回:Array([0]=>Array([0]=>get\u Book[1]=>Tree[2]=>Title)[1]=>Array([0]=>get\u[1]=>[2]=>)[2]=>Array([0]=>Book[1]=>Tree[2]=>Title))

我想知道是否有某种方法可以同时返回带有前缀的数组和带有CamelCase元素的单独数组,但前缀数组中没有空白元素


最终结果示例:数组([0]=>数组([0]=>获取书籍[1]=>流派[2]=>标题)[1]=>数组([0]=>获取[2]=>数组([0]=>书籍[1]=>流派[2]=>标题))每次在()中找不到但请求的内容时,您将获得一个空数组元素。
我记不起有什么办法可以改变这种行为。

该死,我一直在想,一定有什么我没想到的。它很接近,如果它只是没有拾取那些空元素。你仍然可以稍后运行它并取消丢失元素的设置。。。但我想只有在preg_match_的情况下,你才能达到目标;)