将字符串分隔为以0开头的数字组

时间:2015-08-15 19:19:35

标签: php regex

我有一个数组,里面有一堆数字。例如:

44849, 0123401234
44786, 012012
44313, 012012012
44174, 012012
42631, 012012
41901, 012012
41654, 0123401234
38915, 012012
38456, 012012
38218, 012012
28883, 012012012
64892, 012012
63897, 01230123
63889, 012012
63583, 012012
63566, 012012

逗号之前的第一个数字是数组键,不用担心。

我需要做的是将这些数字中的每一个分组为从0开始的组。

例如:

第一行数字将变为['01234','01234']

第二行将变为['012','012']

第三名成为['012','012','012']

依旧......

我觉得正则表达式可能是开始的地方,但我不确定..

2 个答案:

答案 0 :(得分:1)

Nvm,我想通了。这是解决方案:

preg_match_all('/[0][1-9]+/', $in, $out);

输出;

62285, 012012, 012|012
48914, 0101, 01|01
47650, 012, 012
47269, 012345, 012345
46578, 012, 012
46538, 012, 012
45800, 012012, 012|012
45792, 012012012, 012|012|012
45705, 012012, 012|012
45676, 012012, 012|012
45587, 012012012, 012|012|012
45556, 012012012, 012|012|012
45471, 012012012, 012|012|012
45424, 012012012, 012|012|012
45413, 012012012, 012|012|012
45317, 012012, 012|012

仅为了解更多信息,这些是视频的群组链接。每个视频将有一个服务器的链接数,然后是另一个服务器的许多链接。存储这些链接的方式是一个数组,其中'场景编号'是0,1,2等。我需要看看当从0开始分组时块是否相同并且包含相同的块元素,以查看一个服务器是否有比另一个更多的链接。非常具体,我知道。

答案 1 :(得分:0)

\d+,|(0[1-9]+)

这将抓住您需要的一切,但是在个人群体中。您必须遍历每一行并应用此正则表达式以单独对它们进行分组。请点击上面的链接,详细了解其工作原理。

我不确定php,但是在Python中,组由空字符串分隔,因此它可以分成一个单一的镜头!您可以在php中执行相同操作 - 如果可以,请告诉我。请记住,无论如何,您总是可以遍历每一行来执行此操作。它保证有效。